I noticed one "problem" at once when cleaning up the processes... There are no process-list and pthread_cancel() is never called to stop all running threads when you press Ctrl-C. This means that one thread has locked the connection_out->accept_mutex, and the FreeOut() function fails to destroy this mutex.
[r...@magpc owfs]# /opt/owfs/bin/owserver --nozero -p 5001 --fake 10,28 --foreground --fatal_debug ^C DEFAULT: ow_connect.c:322 DEFAULT: mutex_destroy failed rc=16 [Device or resource busy] It's not any big problem, but we should perhaps have a list of all running threads and try to free all resources a bit cleaner. What do you think Paul? Isn't it worth to have better control over all running threads? /Christian -----Original Message----- From: Serg Oskin [mailto:s...@oskin.ru] Sent: Friday, December 19, 2008 2:08 PM To: owfs-developers@lists.sourceforge.net Subject: Re: [Owfs-developers] general protection I can try it on Saturday-Sunday... Serg. > I noticed Paul made some minor changes to the mutexes and this might fix > your problem. > > I'm adding some wrapper functions to all mutexes which will make it possible > to log any error-codes from the mutex-calls. I guess the first failing > mutex-call will log a readable error, and the second error will generate a > segmentation fault before being able to log the error. > No pthread-calls handling mutexes _should_ return any errors if the code is > working, but it could be useful to make it possible to turn on logging for > those failing calls. It will of course generate some more stack-usage, but > it shouldn't be noticeable. > Compiling with --disable-debug should remove all extra wrapper functions. > I really need this feature with uClibc-0.9.29 which seems to have a broken > libpthread. It could be used on any system to make sure all mutexes are > working as they should... > > I was thinking of something like this to turn on the debug-output. > ./owserver --fatal_debug --fatal_debug_file /tmp/owfs_fatal > > "--fatal_debug" will log all errors to stderr or syslog depending on > --error_print > "--fatal_debug_file /tmp/owfs_fatal" will also log all errors to a file > /tmp/owfs_fatal.pid > > I have checked in the changes to the CVS, and I hope this will show if there > are more existing bugs with the mutexes. > > /Christian > > > > > -----Original Message----- > From: Serg Oskin [mailto:s...@oskin.ru] > Sent: Thursday, December 18, 2008 4:44 PM > To: owfs-developers@lists.sourceforge.net > Subject: Re: [Owfs-developers] general protection > > Unfortunately, I can not devote enough time, but I will strongly contribute > to solving this problem. > >> Hi All! >> >> version 2.7p11 >> >> # dmesg >> ... >> owserver[18546] general protection rip:2b88f97f76c0 rsp:53b29dc8 error:0 >> owserver[20757] general protection rip:2b13e1c026c0 rsp:4e8f1dc8 error:0 >> >> >> Sometimes this happens, starting with version 2.7p4. >> >> # file core.15352 >> core.15352: ELF 64-bit LSB core file AMD x86-64, version 1 (SYSV), >> SVR4-style, from 'owserver' >> # gdb /usr/sbin/owserver core.15352 >> GNU gdb Red Hat Linux (6.5-37.el5_2.2rh) >> Copyright (C) 2006 Free Software Foundation, Inc. >> GDB is free software, covered by the GNU General Public License, and you >> are >> welcome to change it and/or distribute copies of it under certain >> conditions. >> Type "show copying" to see the conditions. >> There is absolutely no warranty for GDB. Type "show warranty" for > details. >> This GDB was configured as "x86_64-redhat-linux-gnu"...Using host >> libthread_db library "/lib64/libthread_db.so.1". >> >> Reading symbols from /usr/lib64/libow-2.7.so.11...Reading symbols from >> /usr/lib/debug/usr/lib64/libow-2.7.so.11.0.0.debug...done. >> done. >> Loaded symbols for /usr/lib64/libow-2.7.so.11 >> Reading symbols from /usr/lib64/libusb-0.1.so.4...done. >> Loaded symbols for /usr/lib64/libusb-0.1.so.4 >> Reading symbols from /lib64/libm.so.6...done. >> Loaded symbols for /lib64/libm.so.6 >> Reading symbols from /lib64/libdl.so.2...done. >> Loaded symbols for /lib64/libdl.so.2 >> Reading symbols from /lib64/libpthread.so.0...done. >> Loaded symbols for /lib64/libpthread.so.0 >> Reading symbols from /lib64/libc.so.6...done. >> Loaded symbols for /lib64/libc.so.6 >> Reading symbols from /lib64/ld-linux-x86-64.so.2...done. >> Loaded symbols for /lib64/ld-linux-x86-64.so.2 >> Reading symbols from /lib64/libgcc_s.so.1...done. >> Loaded symbols for /lib64/libgcc_s.so.1 >> Core was generated by `/usr/sbin/owserver -p 30003 -d /dev/ttyS0 -t 30'. >> Program terminated with signal 11, Segmentation fault. >> #0 0x00002b88f97f76c0 in __pthread_mutex_unlock_usercnt () from >> /lib64/libpthread.so.0 >> (gdb) >> (gdb) bt >> #0 0x00002b88f97f76c0 in __pthread_mutex_unlock_usercnt () from >> /lib64/libpthread.so.0 >> #1 0x00002b88f911e506 in LockRelease (pn=0x53b2a058) at ow_locks.c:194 >> #2 0x00002b88f912504c in FS_r_given_bus (owq=0x53b2a040) at ow_read.c:238 >> #3 0x00002b88f912514f in FS_read_distribute (owq=0x53b2a040) at >> ow_read.c:193 >> #4 0x00002b88f91255ef in FS_read_postparse (owq=0x53b2a040) at >> ow_read.c:109 >> #5 0x000000000040278e in ReadHandler (hd=0x51325f00, cm=0x53b2a0e0, >> owq=0x53b2a040) at read.c:86 >> #6 0x0000000000403025 in DataHandler (v=<value optimized out>) at >> data.c:124 >> #7 0x00002b88f97f42f7 in start_thread () from /lib64/libpthread.so.0 >> #8 0x00002b88f9ad9e3d in clone () from /lib64/libc.so.6 >> (gdb) >> >> # gdb /usr/sbin/owserver core.19785 >> GNU gdb Red Hat Linux (6.5-37.el5_2.2rh) >> Copyright (C) 2006 Free Software Foundation, Inc. >> GDB is free software, covered by the GNU General Public License, and you >> are >> welcome to change it and/or distribute copies of it under certain >> conditions. >> Type "show copying" to see the conditions. >> There is absolutely no warranty for GDB. Type "show warranty" for > details. >> This GDB was configured as "x86_64-redhat-linux-gnu"...Using host >> libthread_db library "/lib64/libthread_db.so.1". >> >> Reading symbols from /usr/lib64/libow-2.7.so.11...Reading symbols from >> /usr/lib/debug/usr/lib64/libow-2.7.so.11.0.0.debug...done. >> done. >> Loaded symbols for /usr/lib64/libow-2.7.so.11 >> Reading symbols from /usr/lib64/libusb-0.1.so.4...done. >> Loaded symbols for /usr/lib64/libusb-0.1.so.4 >> Reading symbols from /lib64/libm.so.6...done. >> Loaded symbols for /lib64/libm.so.6 >> Reading symbols from /lib64/libdl.so.2...done. >> Loaded symbols for /lib64/libdl.so.2 >> Reading symbols from /lib64/libpthread.so.0...done. >> Loaded symbols for /lib64/libpthread.so.0 >> Reading symbols from /lib64/libc.so.6...done. >> Loaded symbols for /lib64/libc.so.6 >> Reading symbols from /lib64/ld-linux-x86-64.so.2...done. >> Loaded symbols for /lib64/ld-linux-x86-64.so.2 >> Reading symbols from /lib64/libgcc_s.so.1...done. >> Loaded symbols for /lib64/libgcc_s.so.1 >> Core was generated by `/usr/sbin/owserver -p 30003 -d /dev/ttyS0 -t 30'. >> Program terminated with signal 11, Segmentation fault. >> #0 0x00002b13e1c026c0 in __pthread_mutex_unlock_usercnt () from >> /lib64/libpthread.so.0 >> (gdb) bt >> #0 0x00002b13e1c026c0 in __pthread_mutex_unlock_usercnt () from >> /lib64/libpthread.so.0 >> #1 0x00002b13e1529506 in LockRelease (pn=0x4e8f2058) at ow_locks.c:194 >> #2 0x00002b13e153004c in FS_r_given_bus (owq=0x4e8f2040) at ow_read.c:238 >> #3 0x00002b13e153014f in FS_read_distribute (owq=0x4e8f2040) at >> ow_read.c:193 >> #4 0x00002b13e15305ef in FS_read_postparse (owq=0x4e8f2040) at >> ow_read.c:109 >> #5 0x000000000040278e in ReadHandler (hd=0x72d2bf00, cm=0x4e8f20e0, >> owq=0x4e8f2040) at read.c:86 >> #6 0x0000000000403025 in DataHandler (v=<value optimized out>) at >> data.c:124 >> #7 0x00002b13e1bff2f7 in start_thread () from /lib64/libpthread.so.0 >> #8 0x00002b13e1ee4e3d in clone () from /lib64/libc.so.6 >> (gdb) >> >> >> ------------------------------------------------------------------------ >> >> > ---------------------------------------------------------------------------- > -- >> SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, > Nevada. >> The future of the web can't happen without you. Join us at MIX09 to help >> pave the way to the Next Web now. Learn more and register at >> > http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/ >> >> ------------------------------------------------------------------------ >> >> _______________________________________________ >> Owfs-developers mailing list >> Owfs-developers@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/owfs-developers > > ---------------------------------------------------------------------------- > -- > SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada. > The future of the web can't happen without you. Join us at MIX09 to help > pave the way to the Next Web now. Learn more and register at > http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/ > _______________________________________________ > Owfs-developers mailing list > Owfs-developers@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/owfs-developers > > > ---------------------------------------------------------------------------- -- > _______________________________________________ > Owfs-developers mailing list > Owfs-developers@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/owfs-developers > > ---------------------------------------------------------------------------- -- _______________________________________________ Owfs-developers mailing list Owfs-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/owfs-developers ------------------------------------------------------------------------------ _______________________________________________ Owfs-developers mailing list Owfs-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/owfs-developers