mainGNU Serveez - Support: sr #107607, SIGINT causes segfault when...

 
 

sr #107607: SIGINT causes segfault when configured with "thread safety"

Submitter:  Thien-Thi Nguyen <ttn>
Submitted:  Mon 28 Feb 2011 10:52:36 AM UTC
   
 
Category:  None Priority:  5 - Normal
Severity:  5 - Blocker Status:  Done
Privacy:  Public Assigned to:  ttn
Open/Closed:  Closed Operating System:  GNU/Linux
* Mandatory Fields

Add a New Comment Rich Markup
   

Sun 06 Mar 2011 08:45:19 PM UTC, comment #2: 

Oops, typo in analysis: s/--enable-debug/--enable-thread-safety/

Thien-Thi Nguyen <ttn>
Group administrator
Sun 06 Mar 2011 08:44:01 PM UTC, comment #1: 

Analysis: top level calls ‘svz_halt’, which "destroys" the mutex used around the stdio calls in ‘svz_log’, but (when ‘--enable-debug’) top level calls ‘svz_log’ again, which given the (default) mutex type, causes a failure to grab the mutex leading to another ‘svz_log’ call, leading to unbounded stack growth until crash.

The solution adopted was to add a valid bit for the mutex and only do lock/unlock operations if valid.  The funcs ‘svz_boot’ and ‘svz_halt’ now set and clear this bit, respectively.

  • commit: 74776742fbe27bf79144d7667afeab6d206f64a8
  • title: "Fix bug: Make ‘svz_log’ work also after its mutex is destroyed"


This bug can be closed now.

Thien-Thi Nguyen <ttn>
Group administrator
Mon 28 Feb 2011 10:52:36 AM UTC, original submission:  

This is with the 0.1.7 release.  To reproduce:


$ ./configure -C --prefix /tmp/a/b/c --with-guile=$HOME/local --with-thread-safety
$ make
$ cd src
$ ./serveez
{many lines elided}
{type C-c to send SIGINT}
[2011/02/28 11:37:04] error: poll: Interrupted system call
[2011/02/28 11:37:04] warning: signal: Interrupt
[2011/02/28 11:37:04] notice: leaving server loop
[2011/02/28 11:37:04] debug: shutting down socket id 1
[2011/02/28 11:37:04] debug: socket id 1 disconnected
[2011/02/28 11:37:04] debug: socket 4 disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 2
[2011/02/28 11:37:04] debug: socket id 2 disconnected
[2011/02/28 11:37:04] debug: socket 5 disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 3
[2011/02/28 11:37:04] debug: socket id 3 disconnected
[2011/02/28 11:37:04] debug: socket 6 disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 4
[2011/02/28 11:37:04] debug: socket id 4 disconnected
[2011/02/28 11:37:04] debug: socket 7 disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 5
[2011/02/28 11:37:04] debug: socket id 5 disconnected
[2011/02/28 11:37:04] debug: socket 8 disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 6
[2011/02/28 11:37:04] debug: socket id 6 disconnected
[2011/02/28 11:37:04] debug: socket 9 disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 8
[2011/02/28 11:37:04] debug: socket id 8 disconnected
[2011/02/28 11:37:04] debug: socket 10 disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 9
[2011/02/28 11:37:04] debug: socket id 9 disconnected
[2011/02/28 11:37:04] debug: socket 11 disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 10
[2011/02/28 11:37:04] debug: socket id 10 disconnected
[2011/02/28 11:37:04] debug: socket 12 disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 11
[2011/02/28 11:37:04] debug: socket id 11 disconnected
[2011/02/28 11:37:04] debug: socket 13 disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 12
[2011/02/28 11:37:04] debug: socket id 12 disconnected
[2011/02/28 11:37:04] debug: socket 14 disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 13
[2011/02/28 11:37:04] debug: socket id 13 disconnected
[2011/02/28 11:37:04] debug: socket 15 disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 14
[2011/02/28 11:37:04] debug: socket id 14 disconnected
[2011/02/28 11:37:04] debug: pipe listener (.psend) destroyed
[2011/02/28 11:37:04] debug: shutting down socket id 15
[2011/02/28 11:37:04] debug: socket id 15 disconnected
[2011/02/28 11:37:04] debug: socket 17 disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 16
[2011/02/28 11:37:04] debug: socket id 16 disconnected
[2011/02/28 11:37:04] debug: socket 18 disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 17
[2011/02/28 11:37:04] debug: socket id 17 disconnected
[2011/02/28 11:37:04] debug: socket 19 disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 18
[2011/02/28 11:37:04] debug: socket id 18 disconnected
[2011/02/28 11:37:04] debug: socket 20 disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 19
[2011/02/28 11:37:04] debug: socket id 19 disconnected
[2011/02/28 11:37:04] debug: socket 21 disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 20
[2011/02/28 11:37:04] debug: socket id 20 disconnected
[2011/02/28 11:37:04] debug: socket 22 disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 21
[2011/02/28 11:37:04] debug: socket id 21 disconnected
[2011/02/28 11:37:04] debug: socket 23 disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 22
[2011/02/28 11:37:04] debug: socket id 22 disconnected
[2011/02/28 11:37:04] debug: socket 24 disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 23
[2011/02/28 11:37:04] debug: socket id 23 disconnected
[2011/02/28 11:37:04] debug: socket 25 disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 24
[2011/02/28 11:37:04] debug: socket id 24 disconnected
[2011/02/28 11:37:04] debug: socket 26 disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 25
[2011/02/28 11:37:04] debug: socket id 25 disconnected
[2011/02/28 11:37:04] debug: socket 27 disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 26
[2011/02/28 11:37:04] debug: socket id 26 disconnected
[2011/02/28 11:37:04] debug: socket 28 disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 27
[2011/02/28 11:37:04] debug: socket id 27 disconnected
[2011/02/28 11:37:04] debug: socket 29 disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 28
[2011/02/28 11:37:04] debug: socket id 28 disconnected
[2011/02/28 11:37:04] debug: socket 30 disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 29
[2011/02/28 11:37:04] debug: socket id 29 disconnected
[2011/02/28 11:37:04] debug: socket 31 disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 30
[2011/02/28 11:37:04] debug: reverse dns: killing coserver pid 14394
[2011/02/28 11:37:04] error: waitpid: No child processes
[2011/02/28 11:37:04] debug: pipe (33-32) disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 31
[2011/02/28 11:37:04] debug: ident: killing coserver pid 14395
[2011/02/28 11:37:04] error: waitpid: No child processes
[2011/02/28 11:37:04] debug: pipe (35-34) disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 32
[2011/02/28 11:37:04] debug: dns: killing coserver pid 14396
[2011/02/28 11:37:04] error: waitpid: No child processes
[2011/02/28 11:37:04] debug: pipe (37-36) disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 33
[2011/02/28 11:37:04] debug: socket 3 disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 36
[2011/02/28 11:37:04] debug: socket 41 disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 37
[2011/02/28 11:37:04] debug: socket id 37 disconnected
[2011/02/28 11:37:04] debug: socket 39 disconnected
[2011/02/28 11:37:04] debug: shutting down socket id 38
[2011/02/28 11:37:04] debug: socket id 38 disconnected
[2011/02/28 11:37:04] debug: socket 42 disconnected
[2011/02/28 11:37:04] notice: running all server finalizers
[2011/02/28 11:37:04] notice: destroying foo-server
[2011/02/28 11:37:04] notice: running global server type finalizers
[2011/02/28 11:37:04] debug: cache: freeing 0 byte in 0 entries
[2011/02/28 11:37:04] notice: destroying internal coservers
[2011/02/28 11:37:04] debug: coserver: 0 callback(s) left
Segmentation fault


Thien-Thi Nguyen <ttn>
Group administrator

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by ttn (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 3 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2020-01-23 ttn Open/ClosedOpen Closed
        Operating SystemNone GNU/Linux
    2011-03-06 ttn StatusConfirmed Done

    Back to the top

    Powered by Savane 3.13-d3ae.
    Corresponding source code