Hello,

I can reproduce a related rss-glx termination problem with rss-glx 0.9.1-7 and XScreenSaver on Debian 13 (Trixie).

A note on the origin of this report: the investigation, diagnosis, and proposed patch were worked out interactively with ChatGPT. I performed the commands and tests on my actual Debian 13 system and verified the results described below, but I do not want to present the technical analysis as entirely my own work.

In XScreenSaver, when changing the settings of the "lattice" screensaver and pressing OK, the settings are written successfully to ~/.xscreensaver, but the settings dialog hangs while waiting for the lattice preview process to terminate.

While it is hanging:

```
pkill -TERM -x lattice
```

has no effect, whereas:

```
pkill -KILL -x lattice
```

immediately terminates lattice and releases the XScreenSaver dialog.

During the investigation, ChatGPT pointed out that src/driver.c installs the common signal handler for SIGTERM:

```
sa.sa_handler = signalHandler;
sigaction (SIGINT, &sa, 0);
sigaction (SIGPIPE, &sa, 0);
sigaction (SIGQUIT, &sa, 0);
sigaction (SIGTERM, &sa, 0);
```

The signal handler only sets "signalled = 1". The hypothesis was that, if the program is blocked inside the rendering/GL code, it may not return to the point where that flag is acted upon.

To test this, I removed only this line:

```
sigaction (SIGTERM, &sa, 0);
```

and rebuilt rss-glx 0.9.1-7 locally on Debian 13.

I installed the resulting locally versioned package:

```
rss-glx 0.9.1-7+termfix1
```

With this change, XScreenSaver can terminate lattice normally and its settings dialog no longer hangs.

I also tested the settings dialogs of the other installed rss-glx screensavers. They continue to work normally and I observed no freezes or other regressions.

So, based on this test, leaving SIGTERM at its default disposition appears to fix at least this class of rss-glx termination hangs.

Again, the technical diagnosis and suggested source-code change came out of an interactive troubleshooting session with ChatGPT; my contribution here was reproducing the problem, running the tests, rebuilding the package, and confirming that the modification fixes the issue on my system.

Regards
Frank

Reply via email to