# Interaktive Programme crashen in Terminalemulator

## Gilgwath

Hallo Gentoo-Forum

Seit ich gestern mein System wieder mal geupdated habe crashen einige Programme im Terminalemulator (xfce- und gnome-terminal haben beide das Problem). Auf einer beliebigen tty funktioniert alles wunderbar auch als normaler user habe ich keine Probleme. Sobald ich aber z.B less  benutzen möchte oder dispatch-conf nimmt die Applikation keine Tastatur Eingabe mehr an. Eingaben werden einfach auf dem Terminal angezeigt und nichts passiert. Nicht mal Ctrl+C funktioniert. Der Emulator selber läuft aber noch jedoch bringt "Zurücksetzen" auch nichts.

Die Programme selbst scheinen ja in Ordnung zu sein da sie auf einer tty ja eigentlich laufen. Der Terminalemulator scheint auch nicht das Problem zu sein, der läuft ja weiter und funktioniert soweit. X-Server oder evdev/udev kann ich mir auch nicht vorstellen, weil die Tastatur selbst ja funktioniert. Was werkelt denn da sonst noch zwischen dem Terminal-Emulator und den aufgerufenen Programmen? Ich bin ein wenig aufgeschmissen und Google spuckt nichts brauchbares aus weder auf Englisch noch auf Deutsch. Oder ich bin nicht in der Lage eine Suchanfrage zu schreiben die präzise genug ist.  :Laughing: 

Kann mir da jemand helfen oder mich in die richtige Richtung schubsen?

Vielen Dank

Gilgwath

Edit1 26.01.13: Interessanterweise ist z.B vim oder links, welche ja in hohem Masse interaktiv sind, sind davon nicht betroffen. Ich bin ganz hoch offiziell verwirrt  :Razz: Last edited by Gilgwath on Tue Jan 29, 2013 3:02 pm; edited 1 time in total

----------

## syn0ptik

Ich möglich raten du drücke ctrl-alt-backspace für nachladen xorg.

----------

## cryptosteve

Und hast Du mal revdep-rebuild durchlaufen lassen? Wie sieht eine solche Fehlermeldung denn aus?

----------

## Gilgwath

Wenn ich world updates mache dann führe ich danach immer emerge --depclean und revdep-rebuild aus, ist schon längst zur Gewohnheit geworden. Fehlermeldungen habe ich in dem Sinne leider keine. Weder in meinen Logs noch direkt auf dem Terminal. Die einzige Methode mit dem ich den Terminalemulator "deblockieren" kann, ist ihn ganz einfach zu schliessen. Leider laufen die Prozesse dann im Hintergrund weiter und müssen mit kill -15 beendet werden. In /var/log/messages erzeugt das aber keine Meldungen

Edit 2 28.01.2013: Hab festgestellt das auch man von diesem Problem betroffen ist. Und dispatch-conf hat mir folgendes an den Kopf geworfen, als ich versucht habe es mit Ctrl + zu beenden.

```
lines 1-23Traceback (most recent call last):

  File "/usr/sbin/dispatch-conf", line 492, in <module>

    portage.settings.get('CONFIG_PROTECT', '')))

  File "/usr/sbin/dispatch-conf", line 274, in grind

    spawn_shell(cmd)

  File "/usr/sbin/dispatch-conf", line 467, in spawn_shell

    2 : sys.__stderr__.fileno()})

  File "/usr/lib64/portage/pym/portage/process.py", line 314, in spawn

    retval = os.waitpid(pid, 0)[1]

  File "/usr/lib64/portage/pym/portage/__init__.py", line 224, in __call__

    rval = self._func(*wrapped_args, **wrapped_kwargs)

KeyboardInterrupt

```

Endlich kommt mal irgendwo etwas informatives raus, aber ich versteh es leider nicht wirklich   :Embarassed:  Sagt das vielleicht sonst jemandem etwas?

Edit2 28.01.2013: Aus Ratlosigkeit habe ich es mal mit emerge -e system versucht. Dabei bin ich über ein compiliere Problem mit "sys-libs/glibc-2.15-r3" gestolpert. Vielleicht liegt da ja der Hund begraben. Aber der Sache geh ich morgen nach.

Edit3 29.01.2013: glibc war der Holzweg. Da hat mir /etc/security/limits.conf in die Suppe gespuckt. Ich wusste nicht das "*" auch Root betrifft. Mit max. 10 Prozessen und 50 offenen Files kommt mit entsprechenden makeopts offenbar nicht weit   :Laughing:  Silly me. Mal sehen ob emerge -e system jetzt durch läuft und was es so bewirkt.

Edit4 29.01.2013: So jetzt crashen die betroffenen Programmen wenigstens auch auf normalen Usern. Hab auch darum den Titel des Threads angepasst. Bin bei der ganzen Googlerei über strace gestolpert. 

Gruss

Gilgwath

----------

## Gilgwath

Ich pack das mal in einen neuen Post weil es vielleicht Informationen enthält die weiter zur Lösung des Problems beitragen könnten. Was ich in der zwischen Zeit gewerkelt habe kann in den entsprechenden Edits nachgelesen werden. Wie gesagt hab ich strace entdeckt als ich durchs Netz gegrübelt habe.

Hier die Ausgabe von strace -D -o /home/simon/lesstrace less /etc/make.conf

```
wait4(-1, NULL, 0, NULL)                = 10270

--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_KILLED, si_pid=10270, si_status=SIGKILL, si_utime=0, si_stime=0} ---

alarm(0)                                = 3

execve("/usr/bin/less", ["less", "/etc/make.conf"], [/* 55 vars */]) = 0

brk(0)                                  = 0x1286000

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5462686000

access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)

open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3

fstat(3, {st_mode=S_IFREG|0644, st_size=163073, ...}) = 0

mmap(NULL, 163073, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f546265e000

close(3)                                = 0

open("/lib64/libncursesw.so.5", O_RDONLY|O_CLOEXEC) = 3

read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260m\1\0\0\0\0\0"..., 832) = 832

fstat(3, {st_mode=S_IFREG|0755, st_size=391088, ...}) = 0

mmap(NULL, 2488872, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f5462206000

mprotect(0x7f5462261000, 2093056, PROT_NONE) = 0

mmap(0x7f5462460000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x5a000) = 0x7f5462460000

close(3)                                = 0

open("/lib64/libpcre.so.1", O_RDONLY|O_CLOEXEC) = 3

read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20!\0\0\0\0\0\0"..., 832) = 832

fstat(3, {st_mode=S_IFREG|0755, st_size=366752, ...}) = 0

mmap(NULL, 2462240, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f5461fac000

mprotect(0x7f5462005000, 2093056, PROT_NONE) = 0

mmap(0x7f5462204000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x58000) = 0x7f5462204000

close(3)                                = 0

open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3

read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 G\2\0\0\0\0\0"..., 832) = 832

fstat(3, {st_mode=S_IFREG|0755, st_size=1720536, ...}) = 0

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f546265d000

mmap(NULL, 3832928, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f5461c04000

mprotect(0x7f5461da3000, 2093056, PROT_NONE) = 0

mmap(0x7f5461fa2000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x19e000) = 0x7f5461fa2000

mmap(0x7f5461fa8000, 15456, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f5461fa8000

close(3)                                = 0

open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3

read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220\17\0\0\0\0\0\0"..., 832) = 832

fstat(3, {st_mode=S_IFREG|0755, st_size=14592, ...}) = 0

mmap(NULL, 2109688, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f5461a00000

mprotect(0x7f5461a02000, 2097152, PROT_NONE) = 0

mmap(0x7f5461c02000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f5461c02000

close(3)                                = 0

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f546265c000

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f546265b000

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f546265a000

arch_prctl(ARCH_SET_FS, 0x7f546265b700) = 0

mprotect(0x7f5461fa2000, 16384, PROT_READ) = 0

mprotect(0x7f5461c02000, 4096, PROT_READ) = 0

mprotect(0x7f5462204000, 4096, PROT_READ) = 0

mprotect(0x7f5462460000, 16384, PROT_READ) = 0

mprotect(0x620000, 4096, PROT_READ)     = 0

mprotect(0x7f5462687000, 4096, PROT_READ) = 0

munmap(0x7f546265e000, 163073)          = 0

ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0

ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0

brk(0)                                  = 0x1286000

brk(0x12a7000)                          = 0x12a7000

stat("/root/.terminfo", 0x7fffa752fbc0) = -1 ENOENT (No such file or directory)

stat("/etc/terminfo", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0

access("/etc/terminfo/x/xterm", R_OK)   = 0

open("/etc/terminfo/x/xterm", O_RDONLY) = 3

fstat(3, {st_mode=S_IFREG|0644, st_size=3270, ...}) = 0

mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5462685000

read(3, "\32\0010\0&\0\17\0\235\1l\5xterm|xterm terminal"..., 4096) = 3270

read(3, "", 4096)                       = 0

close(3)                                = 0

munmap(0x7f5462685000, 4096)            = 0

ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0

ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost isig icanon echo ...}) = 0

ioctl(1, TIOCGWINSZ, {ws_row=49, ws_col=185, ws_xpixel=0, ws_ypixel=0}) = 0

ioctl(2, TIOCGWINSZ, {ws_row=49, ws_col=185, ws_xpixel=0, ws_ypixel=0}) = 0

open("/usr/bin/.sysless", O_RDONLY)     = -1 ENOENT (No such file or directory)

open("/etc/sysless", O_RDONLY)          = -1 ENOENT (No such file or directory)

open("/root/.less", O_RDONLY)           = -1 ENOENT (No such file or directory)

open("/usr/lib64/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3

fstat(3, {st_mode=S_IFREG|0644, st_size=1607696, ...}) = 0

mmap(NULL, 1607696, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f54624d1000

close(3)                                = 0

open("/root/.lesshst", O_RDONLY)        = -1 ENOENT (No such file or directory)

open("/dev/tty", O_RDONLY)              = 3

ioctl(3, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, {B38400 opost -isig -icanon -echo ...}) = 0

fsync(3)                                = -1 EINVAL (Invalid argument)

ioctl(3, SNDCTL_TMR_STOP or SNDRV_TIMER_IOCTL_GINFO or TCSETSW, {B38400 opost -isig -icanon -echo ...}) = 0

rt_sigaction(SIGINT, {0x4147c0, [INT], SA_RESTORER|SA_RESTART, 0x7f5461c3bc90}, {SIG_DFL, [], 0}, 8) = 0

rt_sigaction(SIGTSTP, {0x414740, [TSTP], SA_RESTORER|SA_RESTART, 0x7f5461c3bc90}, {SIG_DFL, [], 0}, 8) = 0

rt_sigaction(SIGWINCH, {0x414780, [WINCH], SA_RESTORER|SA_RESTART, 0x7f5461c3bc90}, {SIG_DFL, [], 0}, 8) = 0

rt_sigaction(SIGQUIT, {SIG_IGN, [QUIT], SA_RESTORER|SA_RESTART, 0x7f5461c3bc90}, {SIG_DFL, [], 0}, 8) = 0

pipe2([4, 5], O_CLOEXEC)                = 0

clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f546265b9d0) = 10272

close(5)                                = 0

fcntl(4, F_SETFD, 0)                    = 0

read(4, "", 1)                          = 0

--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=10272, si_status=0, si_utime=0, si_stime=0} ---

close(4)                                = 0

wait4(10272, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 10272

stat("/etc/make.conf", {st_mode=S_IFREG|0644, st_size=1335, ...}) = 0

stat("/etc/make.conf", {st_mode=S_IFREG|0644, st_size=1335, ...}) = 0

open("/etc/make.conf", O_RDONLY)        = 4

lseek(4, 1, SEEK_SET)                   = 1

lseek(4, 0, SEEK_SET)                   = 0

read(4, "# These settings were set by the"..., 256) = 256

lseek(4, 1, SEEK_SET)                   = 1

fstat(4, {st_mode=S_IFREG|0644, st_size=1335, ...}) = 0

lseek(4, 0, SEEK_SET)                   = 0

stat("/etc/make.conf", {st_mode=S_IFREG|0644, st_size=1335, ...}) = 0

write(1, "\33[?1049h\33[?1h\33=\r", 16) = 16

read(4, "# These settings were set by the"..., 8192) = 1335

write(1, "# These settings were set by the"..., 1023) = 1023

write(1, "S=\"--jobs=16 --load-average=16.0"..., 444) = 444

read(3, 0x7fffa753150f, 1)              = ? ERESTARTSYS (To be restarted if SA_RESTART is set)

--- SIGTERM {si_signo=SIGTERM, si_code=SI_USER, si_pid=10274, si_uid=0} ---

+++ killed by SIGTERM +++
```

 Ich  hab less gekillt weil es nicht auf meine Tastatureingabe reagiert. 

Ich sehe einige "No such file or directory" aber ich hab leider keinen Plan ob das so sein soll/darf oder nicht. Mein Debian auf meinem Laptop zeigt auf jeden Fall die gleichen Einträge. Vom Rest verstehe ich leider nicht sehr viel. Falls ich sonst noch irgendwelche Infos zur Verfügung stellen soll mach ich das gerne. Allerdings weiss ich echt nicht wo ich noch interessante Infos rauskitzeln könnte. Da bräucht ich schon nen Winkel mit nem Zaunpfahl (oder was gröberem mittlerweile komm ich mir etwas sehr ungeschickt vor  :Razz: )

Wäre echt froh wenn mir da jemand weiter langsam bringt mich die Sache zur Verzweiflung. Und ohne less und man im Terminal zu leben hört sich nicht nach ner guten Alternative an.

Vielen Dank 

Gilgwath

----------

