Pomoc s debugom

Martin Tiršel lk na blackpage.eu
Čtvrtek Listopad 1 14:50:11 CET 2012


Takze uz som na to prisiel. Spojenie medzi aplikaciou a postgresom bolo  
sifrovane, preto sa nedalo z toho nic vycitat. Ked som SSL vypol, tak som  
uz vedel precitat SQL dotazy a skoncil na cykle, ktory sa do DB snazil  
ulozit http user agent string so skriplenou diakritikou, ktory nastavoval  
asi nejaky specialista :)

-- 
S pozdravom,
Martin Tiršel


On Wed, 31 Oct 2012 13:43:47 +0100, Martin Tiršel <lk na blackpage.eu> wrote:

> 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!
>


Další informace o konferenci Linux