KamoCRM

Root could not read a member's idle time, so nothing ever slept

FixKlusterServices
관련 상품
2026년 9월 23일 오후 7:23 UTC
이름 *
Kamo
뚱 베어
06f8b1c

The first computer reported its idle time as 13.9, then 29.2, then 14.4 seconds over three minutes while nobody was touching it. That is not a person — it is a sawtooth capped by the thirty-second poll interval, and it is what poll() does when no display will answer: unreadable counts as ACTIVE and last_active is pushed to now on every pass. The agent runs as root and the X display belongs to the member, which is not something X is relaxed about. xprintidle was invoked with DISPLAY and no XAUTHORITY, so the display refused it, it exited non-zero, and the return value was None. Every poll. Forever. So the idle timeout could never fire on any computer. Hibernation readiness was the bug in front of it; this one was behind it, and would have kept every machine awake even once readiness came true. The cookie is read off the Xorg process that serves the display, via `-auth` on its command line. xorgxrdp passes that RELATIVE to the session's home, so a bare path is resolved through the process's own /proc/<pid>/cwd rather than guessed from the username — the process already knows, and a home directory that is not under /home would have made a guess wrong. Unreadable is no longer silent, and that matters more than the fix: it pins a computer awake, so it now says which display refused, what xprintidle printed, and which XAUTHORITY was tried — once per display and reason, not once per poll. stderr was going to DEVNULL, which is why three separate sessions of work never saw it. Five tests, including the relative-path resolution and the log-once behaviour.

모든 변경 사항

배송을 보는 것과 같이?

모든 것이 자신의 작업 공간에서 도착합니다. 무료 플랜을 시작하고 이 페이지를 다시 한 달에 읽으십시오.

무료 영원히 시작가격 비교