* bug#21424: Bug#685919: guile-1.6: SIGALRM signal handler does not get called when guile blocks on I/O [not found] <20120826131404.6959.57720.reportbug@localhost.localdomain> @ 2015-09-06 17:18 ` Rob Browning [not found] ` <handler.21424.B.14415599333771.ack@debbugs.gnu.org> 2016-06-24 9:17 ` bug#21424: Bug#685919: guile-1.6: SIGALRM signal handler does not get called when guile blocks on I/O Andy Wingo 0 siblings, 2 replies; 3+ messages in thread From: Rob Browning @ 2015-09-06 17:18 UTC (permalink / raw) To: 21424; +Cc: Panu Kalliokoski, 685919, 685919-forwarded [If possible, please preserve the -forwarded address in any replies.] Reference: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=765497 Panu Kalliokoski <panu.kalliokoski@gmail.com> writes: > While playing with guile on my system, I discovered a weird anomaly > which I could not reproduce on other systems running guile. If I > install a signal handler for SIGALRM, it won't get called while guile is > making an I/O system call. To demonstrate: > > [atehwa@karaihin ~/proj/psyk]$ guile > guile> (alarm 2) > 0 > guile> Herätyskello > [atehwa@karaihin ~/proj/psyk]$ guile > guile> (sigaction SIGALRM (lambda (x) (display "now!") (newline))) > (0 . 335544320) > guile> (alarm 2) > 0 > guile> now a lot more than two seconds has passed, while I wrote this > now! > <unnamed port>: In expression now: > <unnamed port>: Unbound variable: now > ABORT: (unbound-variable) > [...] > > As you can see, the signal handler gets called as soon as guile returns > from read(2), already before calling (eval). > > I can't get to understand what causes this on my system, because another > Debian system with exact same versions of guile-1.6, libc6 and > libguile-ltdl-1 seems to work fine, and interrupts the read(2) call with > the signal handler. This appears to still be the case with at least Debian's 2.0.11+1-10 package, and setting the handler to something that doesn't perform IO has the same effect (i.e. no alarm until you hit return): (sigaction SIGALRM (lambda (x) (exit 1))) Thanks -- Rob Browning rlb @defaultvalue.org and @debian.org GPG as of 2011-07-10 E6A9 DA3C C9FD 1FF8 C676 D2C4 C0F0 39E9 ED1B 597A GPG as of 2002-11-03 14DD 432F AE39 534D B592 F9A0 25C8 D377 8C7E 73A4 ^ permalink raw reply [flat|nested] 3+ messages in thread
[parent not found: <handler.21424.B.14415599333771.ack@debbugs.gnu.org>]
* bug#21424: Acknowledgement (Bug#685919: guile-1.6: SIGALRM signal handler does not get called when guile blocks on I/O) [not found] ` <handler.21424.B.14415599333771.ack@debbugs.gnu.org> @ 2015-09-06 17:49 ` Rob Browning 0 siblings, 0 replies; 3+ messages in thread From: Rob Browning @ 2015-09-06 17:49 UTC (permalink / raw) To: 21424, 765497-forwarded; +Cc: control retitle 21424 guile-2.0: SIGALRM signal handler does not get called when guile blocks on I/O thanks GNU bug Tracking System <help-debbugs@gnu.org> writes: > Thank you for filing a new bug report with debbugs.gnu.org. Note: I used the wrong bug number (the old guile-1.6 clone) in the original forwarding. It should have been 765497, and so the Debian forwarded address would be 765497-forwarded@bugs.debian.org, as in the headers above. Thanks -- Rob Browning rlb @defaultvalue.org and @debian.org GPG as of 2011-07-10 E6A9 DA3C C9FD 1FF8 C676 D2C4 C0F0 39E9 ED1B 597A GPG as of 2002-11-03 14DD 432F AE39 534D B592 F9A0 25C8 D377 8C7E 73A4 ^ permalink raw reply [flat|nested] 3+ messages in thread
* bug#21424: Bug#685919: guile-1.6: SIGALRM signal handler does not get called when guile blocks on I/O 2015-09-06 17:18 ` bug#21424: Bug#685919: guile-1.6: SIGALRM signal handler does not get called when guile blocks on I/O Rob Browning [not found] ` <handler.21424.B.14415599333771.ack@debbugs.gnu.org> @ 2016-06-24 9:17 ` Andy Wingo 1 sibling, 0 replies; 3+ messages in thread From: Andy Wingo @ 2016-06-24 9:17 UTC (permalink / raw) To: Rob Browning; +Cc: 21424, Panu Kalliokoski, 685919, 685919-forwarded It does seem clear that we have a bug here; evidently signals do not wake up the reader, neither with readline nor without. Andy On Sun 06 Sep 2015 19:18, Rob Browning <rlb@defaultvalue.org> writes: > [If possible, please preserve the -forwarded address in any replies.] > > Reference: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=765497 > > Panu Kalliokoski <panu.kalliokoski@gmail.com> writes: > >> While playing with guile on my system, I discovered a weird anomaly >> which I could not reproduce on other systems running guile. If I >> install a signal handler for SIGALRM, it won't get called while guile is >> making an I/O system call. To demonstrate: >> >> [atehwa@karaihin ~/proj/psyk]$ guile >> guile> (alarm 2) >> 0 >> guile> Herätyskello >> [atehwa@karaihin ~/proj/psyk]$ guile >> guile> (sigaction SIGALRM (lambda (x) (display "now!") (newline))) >> (0 . 335544320) >> guile> (alarm 2) >> 0 >> guile> now a lot more than two seconds has passed, while I wrote this >> now! >> <unnamed port>: In expression now: >> <unnamed port>: Unbound variable: now >> ABORT: (unbound-variable) >> [...] >> >> As you can see, the signal handler gets called as soon as guile returns >> from read(2), already before calling (eval). >> >> I can't get to understand what causes this on my system, because another >> Debian system with exact same versions of guile-1.6, libc6 and >> libguile-ltdl-1 seems to work fine, and interrupts the read(2) call with >> the signal handler. > > This appears to still be the case with at least Debian's 2.0.11+1-10 > package, and setting the handler to something that doesn't perform IO > has the same effect (i.e. no alarm until you hit return): > > (sigaction SIGALRM (lambda (x) (exit 1))) > > Thanks ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2016-06-24 9:17 UTC | newest] Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <20120826131404.6959.57720.reportbug@localhost.localdomain> 2015-09-06 17:18 ` bug#21424: Bug#685919: guile-1.6: SIGALRM signal handler does not get called when guile blocks on I/O Rob Browning [not found] ` <handler.21424.B.14415599333771.ack@debbugs.gnu.org> 2015-09-06 17:49 ` bug#21424: Acknowledgement (Bug#685919: guile-1.6: SIGALRM signal handler does not get called when guile blocks on I/O) Rob Browning 2016-06-24 9:17 ` bug#21424: Bug#685919: guile-1.6: SIGALRM signal handler does not get called when guile blocks on I/O Andy Wingo
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).