Pomoc s debugom

Tomas Macek macek na fortech.cz
Pátek Listopad 2 15:15:11 CET 2012


Zdravím, už s křížkem po funuse, ale toto se dalo tuším zjistit i ze 
systémových tabulek postgresu, tuším že pg_stat_activity. Je tam v 
current_query vidět, jaký proces jaký sql spouští.

T. Macek


On Thu, 1 Nov 2012, Martin Tiršel wrote:

> 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!
>> 
> _______________________________________________
> Linux mailing list
> Linux na linux.cz
> http://www.linux.cz/mailman/listinfo/linux


Další informace o konferenci Linux