Portál AbcLinuxu, 11. května 2025 23:32

Dotaz: xcalc se spouští strašně dlouho

David Watzke avatar 8.9.2007 19:34 David Watzke | skóre: 74 | blog: Blog... | Praha
xcalc se spouští strašně dlouho
Přečteno: 388×
Odpovědět | Admin
Zdravím, z nějakýho důvodu se mi xcalc spouští hrozně dlouho. Pustil jsem na něj strace a problém je v tomhle:
read(3, "\0016K\0C\0\0\0\0\0\0\0\7\0\0\0\367\377\0\0003\0030\0\2\0\7\0\7\0\v\0", 32) = 32
read(3, "\2\0\0\0\233\0t\0\0\0\377\0\0\0\27\0\0\0\0\0\v\0\2\0\0\0\0\0", 28) = 28
read(3, "\321\0\0\0\322\0\0\0\275\0\0\0\323\0\0\0@\0\0\0\324\0\0\0\276\0\0\0N\7\0\0"..., 184) = 184
readv(3, [{"-misc-fixed-bold-r-normal--13-12"..., 54}, {"\17\0", 2}], 2) = 56
read(3, "\1\0K\0\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 32) = 32
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 28) = 28
writev(3, [{"2\0\20\0\1\0006\0", 8}, {"-misc-fixed-bold-r-normal--13-12"..., 54}, {"\0\0", 2}], 3) = 64
read(3, 0x7ffffb640f40, 32)             = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN, revents=POLLIN}], 1, -1) = 1
read(3, "\0016L\0C\0\0\0\0\0\0\0\7\0\0\0\367\377\0\0003\0030\0\2\0\7\0\7\0\v\0", 32) = 32
read(3, "\2\0\0\0\233\0t\0\0\0\377\0\0\0\27\0\0\0\0\0\v\0\2\0\0\0\0\0", 28) = 28
read(3, "\321\0\0\0\322\0\0\0\275\0\0\0\323\0\0\0@\0\0\0\324\0\0\0\276\0\0\0N\7\0\0"..., 184) = 184
readv(3, [{"-misc-fixed-bold-r-normal--13-12"..., 54}, {"\17\0", 2}], 2) = 56
read(3, "\1\0L\0\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 32) = 32
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 28) = 28
writev(3, [{"2\0\22\0\1\0=\0", 8}, {"-misc-fixed-medium-r-normal--12-"..., 61}, {"\0\0\0", 3}], 3) = 72
read(3, 0x7ffffb640f40, 32)             = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN, revents=POLLIN}], 1, -1) = 1
read(3, "\1=M\0I\0\0\0\0\0\r\0\r\0\v\0\2\0\r\4\0\0\0\0\0\0\r\0\r\0\v\0", 32) = 32
read(3, "\2\0\r\4\377\377\377\377!\0~\0!!\31\0\0!t\0\v\0\1\0\0\0\0\0", 28) = 28
read(3, "\275\0\0\0\316\1\0\0@\0\0\0\317\1\0\0\276\0\0\0001\1\0\0\277\0\0\0002\1\0\0"..., 200) = 200
readv(3, [{"-misc-fixed-medium-r-normal--12-"..., 61}, {"\0\0\0", 3}], 2) = 64
read(3, "\1\0M\0\7\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 32) = 32
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 28) = 28
writev(3, [{"2\0\22\0\1\0=\0", 8}, {"-misc-fixed-medium-r-normal--12-"..., 61}, {"\0\0\0", 3}], 3) = 72
read(3, 0x7ffffb640f40, 32)             = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN, revents=POLLIN}], 1, -1) = 1
atd. Vždycky to čeká na poll(). Než se spustí (skoro 6 sekund), tak to docela kotlí CPU. Verze 1.0.1 a 1.0.2. Tyhle X aplikace jinak nepoužívám a u ničeho jinýho se mi nic takovýho nestává, tak nevím co s tím...
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Fuky avatar 8.9.2007 21:39 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: xcalc se spouští strašně dlouho
Odpovědět | | Sbalit | Link | Blokovat | Admin

Nejprve ze souboru s fd = 3 úspěšně čteš, pak do něj úspěšně zapíšeš, ale poté se čtení nepodaří, tak se čeká funkcí poll až z něho zase budeš moci číst. Podívej se tedy jaký soubor otevírá fce open s fd = 3 a třeba se dozvíš proč k němu nejde přistupovat bez těch šílených prodlev.

-- RÁMO: psí tábor , ETriatlon: Výuka plavání
David Watzke avatar 8.9.2007 21:44 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: xcalc se spouští strašně dlouho
To bylo to, co nechápu... fd 3 je dávno zavřený:
$ strace xcalc 2>&1 | egrep -e ^open'\(.* = 3' -e ^close'\(3'
open("/etc/ld.so.cache", O_RDONLY)      = 3
close(3)                                = 0
open("/usr/lib/libXaw.so.7", O_RDONLY)  = 3
close(3)                                = 0
open("/usr/lib/libXmu.so.6", O_RDONLY)  = 3
close(3)                                = 0
open("/usr/lib/libXt.so.6", O_RDONLY)   = 3
close(3)                                = 0
open("/usr/lib/libX11.so.6", O_RDONLY)  = 3
close(3)                                = 0
open("/usr/lib/libSM.so.6", O_RDONLY)   = 3
close(3)                                = 0
open("/usr/lib/libICE.so.6", O_RDONLY)  = 3
close(3)                                = 0
open("/lib/libm.so.6", O_RDONLY)        = 3
close(3)                                = 0
open("/lib/libc.so.6", O_RDONLY)        = 3
close(3)                                = 0
open("/usr/lib/libXext.so.6", O_RDONLY) = 3
close(3)                                = 0
open("/usr/lib/libXpm.so.4", O_RDONLY)  = 3
close(3)                                = 0
open("/usr/lib/libXau.so.6", O_RDONLY)  = 3
close(3)                                = 0
open("/usr/lib/libXdmcp.so.6", O_RDONLY) = 3
close(3)                                = 0
open("/lib/libdl.so.2", O_RDONLY)       = 3
close(3)                                = 0
open("/proc/meminfo", O_RDONLY)         = 3
close(3)                                = 0
a teprve potom to začne.
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
Fuky avatar 8.9.2007 22:07 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: xcalc se spouští strašně dlouho

Nezapomeň grepovat i funkci connect, visí Ti to totiž nejspíš na soketu v /tmp s fd = 3.

David Watzke avatar 8.9.2007 22:11 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: xcalc se spouští strašně dlouho
Jo, máš pravdu...
connect(3, {sa_family=AF_FILE, path="/tmp/.X11-unix/X0"}, 19) = 0
# ls -lF /tmp/.X11-unix/X0
srwxrwxrwx 1 root root 0 2007-09-07 14:08 /tmp/.X11-unix/X0=
Fakt nevím...
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
Fuky avatar 8.9.2007 22:31 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: xcalc se spouští strašně dlouho

A víš, která aplikace, tak šíleně vytěžuje ten procesor? Jaké programy v tu chvíli přistupují k tomu soketu?

8.9.2007 22:20 petris
Rozbalit Rozbalit vše Re: xcalc se spouští strašně dlouho
Když proces volá poll, tak spí (takže nemůže vytěžovat CPU). Pokud ho vytěžuje, je chyba v jádře (sestavení pollovací tabulky není pro malý počet deskriptorů náročná operace). Nebo vytěžují CPU Xka?
David Watzke avatar 8.9.2007 22:22 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: xcalc se spouští strašně dlouho
Xka jsou to.
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
8.9.2007 22:33 petris
Rozbalit Rozbalit vše Re: xcalc se spouští strašně dlouho
V tom případě doporučuju kouknout, co Xka zrovna dělají (třeba zase pomoci strace, když to nepomůže, tak gdb). Případně zkusit reinstalovat zainteresované balíky (počítače mají omezenou spolehlivost a občas se někde nějakej špatnej bajtík objeví)
David Watzke avatar 8.9.2007 22:59 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: xcalc se spouští strašně dlouho
Nevím přesně jak rozjet Xka přes strace - zkoušel jsem strace startx -- :2 a to nic během spouštění xcalc nevypsalo. Nevím jaký balíky bych měl přeinstalovávat - xcalc jsem dneska nainstaloval (a ta verze předtím dělala totéž). Brzo nahodím xorg-server 1.4.
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
8.9.2007 23:06 petris
Rozbalit Rozbalit vše Re: xcalc se spouští strašně dlouho
startx bude skript (nebo možná program), který přečte nastavení a podle toho spustí program X (pravděpodobně link na Xorg). Můžete zkusit upravit startx (nedoporučuju) nebo pustit X rovnou (doporučuju) - strace X :1.
8.9.2007 23:34 Jiří J. | skóre: 34 | blog: Poutník | Brno
Rozbalit Rozbalit vše Re: xcalc se spouští strašně dlouho
Pomohlo by attachování na již běžící Xka?
       -p pid      Attach  to  the  process with the process ID pid and begin tracing.  The trace may be termi-
                   nated at any time by a keyboard interrupt signal (CTRL-C).  strace will respond by detaching
                   itself  from  the  traced  process(es)  leaving  it (them) to continue running.  Multiple -p
                   options can be used to attach to up to  32  processes  in  addition  to  command  (which  is
                   optional if at least one -p option is given).
A zajímavou vlastností strace je parametr -e trace= - viz. manuálová stránka.. něco jako -e trace=desc by možná mohlo usnadnit grepování, pokud vůbec bude třeba..
8.9.2007 23:49 Jiří J. | skóre: 34 | blog: Poutník | Brno
Rozbalit Rozbalit vše Re: xcalc se spouští strašně dlouho
Ještě podotýkám, že je možná lepší logovat do souboru ... mě v případě spuštění v xtermu zatuhly Xka a musel jsem použít SysRq (userspace bez odpovědi) - takže raději v zájmu vlastní bezpečnosti přidat &> log ...
David Watzke avatar 9.9.2007 00:50 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: xcalc se spouští strašně dlouho
Když se attachnu, tak vytuhne systém... poslední, co vidím, je tohle.
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
9.9.2007 01:07 Jiří J. | skóre: 34 | blog: Poutník | Brno
Rozbalit Rozbalit vše Re: xcalc se spouští strašně dlouho
^ :-D
David Watzke avatar 9.9.2007 01:09 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: xcalc se spouští strašně dlouho
Jenže ono to vytuhne ještě před tím, než něco stihnu spustit, takže je to na nic. Kašlu na to, radši zatím zůstanu u KCalc :-D
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
9.9.2007 01:09 petris
Rozbalit Rozbalit vše Re: xcalc se spouští strašně dlouho
Taky atachnout se takhle na běžící X je pěknej nesmysl, vždyť se to pak zacyklí - strace něco vypíše X to vykreslí, to aktivuje strace, které zas něco vypíše atd.

Pusťte si raději čistá X, jak jsme psal ;-)
David Watzke avatar 9.9.2007 13:35 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: xcalc se spouští strašně dlouho
strace od spuštění X do... A celej log. To je půl mega textu, to se nedá :-D
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.