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