Pomoc s debugom
Martin Tiršel
lk na blackpage.eu
Středa Říjen 31 13:43:47 CET 2012
Zdravim,
asi to sem az tak nepatri, ale mozno budete vediet niekto poradit. Mam na
serveri nginx + wsgi + postgres + python (django) aplikaciu. Po poslednej
aktualizacii (rozsiahle zmeny) mi zacali wsgi procesy z casu na cas
blbnut, zacina to tak, ze mam napriklad 5 procesov a dva z toho su nonstop
vytazene (htop ukazuje 50-60%) a postupne sa pridavaju dalsie. Ked pozeram
na databazu, tak ta je bombardovana nejakym bordelom (stovky zaznamov za
sekundu):
2012-10-31 11:18:05.923
CET,"xxx","xxx",15426,"192.168.1.4:38242",5090a976.3c42,10119755,"idle in
transaction (aborted)",2012-10-31 05:30:46 CET,4/0,0,ERROR,22021,"invalid
byte sequence for encoding ""UTF8"": 0xe12920",,,,,,,,,""
strace vyzera takto:
read(6, "\27\3\1\0 ", 5) = 5
read(6,
"\361\374\343I)i\265\241\344\0\374\3532\344\356\276\311B\356\30\234\216\221\"\3253\357\355u\r\257\"",
32) = 32
read(6, "\27\3\1\0 ", 5) = 5
read(6,
"&V\306\212\326\307\374C\262\347\260r\301z\340UZ\5|\243\311\300H\314\334q\33\365\304)P[",
32) = 32
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
gettimeofday({1351686576, 60873}, NULL) = 0
read(9, "P\10\341\300Z\216\10.}\327-\245\263~r>", 16) = 16
gettid() = 5812
gettimeofday({1351686576, 62797}, NULL) = 0
rt_sigprocmask(SIG_BLOCK, [PIPE], [], 8) = 0
write(6, "\27\3\1\0
LtAJ\240EZ{\0175\323\305\257\253|\347or\265\225\250\35082\216\6\301"...,
122) = 122
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
poll([{fd=6, events=POLLIN|POLLERR}], 1, -1) = 1 ([{fd=6, revents=POLLIN}])
rt_sigprocmask(SIG_BLOCK, [PIPE], [], 8) = 0
Toto sa nonstop opakuje (len ine hodnoty v read/write volani). File
descriptory 6 a 9:
uwsgi 5812 xxx 6u IPv4 2495726 0t0 TCP
192.168.1.4:38239->192.168.1.3:postgresql (ESTABLISHED)
uwsgi 5812 xxx 9r CHR 1,9 0t0 5799
/dev/urandom
Vyzera to na nejaky loop, ktory databaze posiela nezmysly. Da sa nejako
zistit, kde presne tento problem nastava? Lepsie povedane, v ktorom subore
a idealne riadok/funkcia/metoda/trieda/cokolvek coho by som sa vedel
chytit? Pripadne to co je v read/write, je mozne to nejako "dekodovat" do
citatelnej podoby?
Dakujem!
--
S pozdravom,
Martin Tiršel
Další informace o konferenci Linux