Za slučaj da nekog zanima, problem je bio u WPJabber jabberd servisu, na koji se JIT oslanja. ktrace dotičnog procesa je pokazao puno gettimeofday() poziva u beskonačnoj petlji.
Code:
/tmp # kdump
9659 jabberd CALL poll(0x809b000,0,0)
9659 jabberd RET poll 0
9659 jabberd CALL gettimeofday(0x280c18d8,0)
9659 jabberd RET gettimeofday 0
9659 jabberd CALL gettimeofday(0x280c18d8,0)
9659 jabberd RET gettimeofday 0
9659 jabberd CALL gettimeofday(0xbfadad30,0xbfadad38)
9659 jabberd RET gettimeofday 0
9659 jabberd CALL poll(0x80b1400,0x14,0)
9659 jabberd RET poll 0
9659 jabberd CALL gettimeofday(0xbfadad38,0)
9659 jabberd RET gettimeofday 0
9659 jabberd PSIG SIGPROF caught handler=0x280b2fa0 mask=0x0 code=0x0
9659 jabberd CALL gettimeofday(0x280c18d8,0)
9659 jabberd RET gettimeofday 0
9659 jabberd CALL sigprocmask(0x3,0x280c18fc,0)
9659 jabberd RET sigprocmask 0
9659 jabberd CALL sigreturn(0xbfadaa10)
9659 jabberd RET sigreturn JUSTRETURN
9659 jabberd CALL gettimeofday(0xbfadad38,0)
9659 jabberd RET gettimeofday 0
9659 jabberd CALL gettimeofday(0xbfadad38,0)
9659 jabberd RET gettimeofday 0
9659 jabberd CALL gettimeofday(0xbfadad38,0)
9659 jabberd RET gettimeofday 0
9659 jabberd CALL gettimeofday(0xbfadad38,0)
9659 jabberd RET gettimeofday 0
9659 jabberd CALL gettimeofday(0xbfadad38,0)
9659 jabberd RET gettimeofday 0
9659 jabberd CALL gettimeofday(0xbfadad38,0)
9659 jabberd RET gettimeofday 0
9659 jabberd CALL gettimeofday(0xbfadad38,0)
9659 jabberd RET gettimeofday 0
9659 jabberd CALL gettimeofday(0xbfadad38,0)
9659 jabberd RET gettimeofday 0
9659 jabberd CALL gettimeofday(0xbfadad38,0)
9659 jabberd RET gettimeofday 0
9659 jabberd CALL gettimeofday(0xbfadad38,0)
9659 jabberd RET gettimeofday 0
9659 jabberd CALL gettimeofday(0xbfadad38,0)
9659 jabberd RET gettimeofday 0
9659 jabberd CALL gettimeofday(0xbfadad38,0)
...
/tmp # kdump
9659 jabberd CALL poll(0x809b000,0,0)
9659 jabberd RET poll 0
9659 jabberd CALL gettimeofday(0x280c18d8,0)
9659 jabberd RET gettimeofday 0
9659 jabberd CALL gettimeofday(0x280c18d8,0)
9659 jabberd RET gettimeofday 0
9659 jabberd CALL gettimeofday(0xbfadad30,0xbfadad38)
9659 jabberd RET gettimeofday 0
9659 jabberd CALL poll(0x80b1400,0x14,0)
9659 jabberd RET poll 0
9659 jabberd CALL gettimeofday(0xbfadad38,0)
9659 jabberd RET gettimeofday 0
9659 jabberd PSIG SIGPROF caught handler=0x280b2fa0 mask=0x0 code=0x0
9659 jabberd CALL gettimeofday(0x280c18d8,0)
9659 jabberd RET gettimeofday 0
9659 jabberd CALL sigprocmask(0x3,0x280c18fc,0)
9659 jabberd RET sigprocmask 0
9659 jabberd CALL sigreturn(0xbfadaa10)
9659 jabberd RET sigreturn JUSTRETURN
9659 jabberd CALL gettimeofday(0xbfadad38,0)
9659 jabberd RET gettimeofday 0
9659 jabberd CALL gettimeofday(0xbfadad38,0)
9659 jabberd RET gettimeofday 0
9659 jabberd CALL gettimeofday(0xbfadad38,0)
9659 jabberd RET gettimeofday 0
9659 jabberd CALL gettimeofday(0xbfadad38,0)
9659 jabberd RET gettimeofday 0
9659 jabberd CALL gettimeofday(0xbfadad38,0)
9659 jabberd RET gettimeofday 0
9659 jabberd CALL gettimeofday(0xbfadad38,0)
9659 jabberd RET gettimeofday 0
9659 jabberd CALL gettimeofday(0xbfadad38,0)
9659 jabberd RET gettimeofday 0
9659 jabberd CALL gettimeofday(0xbfadad38,0)
9659 jabberd RET gettimeofday 0
9659 jabberd CALL gettimeofday(0xbfadad38,0)
9659 jabberd RET gettimeofday 0
9659 jabberd CALL gettimeofday(0xbfadad38,0)
9659 jabberd RET gettimeofday 0
9659 jabberd CALL gettimeofday(0xbfadad38,0)
9659 jabberd RET gettimeofday 0
9659 jabberd CALL gettimeofday(0xbfadad38,0)
...
Taman sam hteo da zaronim u sors, ali prvo sam hteo da zamenim samo wpjabber core najnovijom verzijom. Ispostavi se da je bag ispravljen, ali JIT projekat nije ažurirao poslednju verziju da uključuje najnoviji wpjabberd. I tako, problem koji nas je smarao mesecima, rešen za 5 minuta.
Ne znam zašto sam ovo ispričao, možda nekome bude od koristi. A ako ne koristi, onda smara ;o).
int rand(void);
Those who do not understand Unix are condemned to reinvent it, poorly.
Upali lampicu — koristi Jabber!
Those who do not understand Unix are condemned to reinvent it, poorly.
Upali lampicu — koristi Jabber!