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