termux / termux-x11

Termux X11 add-on application.
https://termux.dev
GNU General Public License v3.0
2.09k stars 311 forks source link

[Bug]: application killed when switching from termux to termux-x11 #699

Open natebragg opened 2 months ago

natebragg commented 2 months ago

Problem description

I run TERMUX_X11_DEBUG=1 termux-x11 :0 -xstartup xclock in termux. I then switch apps to termux-x11, which flashes and then goes back to the 'not connected' screen.

When I go back to termux and look at the log the last line is X connection to :0 broken (explicit kill or server shutdown). Although I used xclock here, this happens for each of the various applications I tested.

I am using a Samsung SM-T820 tablet.

What steps will reproduce the bug?

See above.

What is the expected behavior?

No response

twaik commented 2 months ago

Probably you should post the logcat output. Run logcat > log.txt 2>&1 after termux-x11 stops and post here the log file. Not screenshot.

natebragg commented 2 months ago

log.txt

Nothing jumps out to me immediately. I don't even see xclock mentioned.

twaik commented 2 months ago

It seems like termux-x11 is killed with SYS_SECCOMP. It is pretty much weird, it should not behave this way. And I do not see any way to fix it because it is caused by your firmware, probably after system update.

natebragg commented 2 months ago

This system has not been updated in a long time. It is an older device, running Android 9. It may be a firmware issue perhaps, but when googling around it seems it may also be caused by lifecycle events. When I go from termux to some other app (settings, calendar, whatever) this issue does not happen. Only the x11 server. Interestingly, this also does not occur when testing this in split screen mode (xclock is not displaying, but that is a separate issue that I will open).

natebragg commented 2 months ago

Oh, and when exiting from split screen, it now works fine. Switching between the two apps does not cause xclock to be killed. So this is clearly an issue with initially launching the app. Perhaps there's a good way to catch this in action via app-specific logging?

natebragg commented 2 months ago

Another update---I tried to see if strace termux-x11 could give any insight, and interestingly when I run it and then quickly switch to the server, strace slows things down enough that it worked sometimes, and crashed others. If I run this without switching quickly, however, it crashes after switching. As far as I can tell, modulo memory addresses and such, the strace logs are similar.

peasoft commented 3 weeks ago

Reproduced on an OPPO device with Android 10.

  1. Open Termux X11
  2. Switch to Termux and run termux-x11
  3. Switch to Termux X11
  4. Connection lost, termux-x11 was killed

However:

  1. Open Termux and run termux-x11
  2. Open Termux X11
  3. Switch to Termux
  4. Everything is fine