The polling is being made from another machine (than that of owserver) using
owread in different bash scripts.
The scripts are invoked from crontab, some with different intervals. I have
now removed all entries in crontab besides the one reading
/26.6447E7000000/vis (which seems to be the one causing the problem) but the
deadlock haven't yet occurred.
It seems that the deadlock only occurs when I have several polling scripts
enabled in crontab, one being /vis.
/på
Den 16 mars 2010 19.04 skrev Patrik Åkerfeldt <[email protected]>:
> Paul, please let me know if you need more feedback.
>
> Thanks,
>
> 2010/3/16 Paul Alfille <[email protected]>
>
> Perhaps the mutex is already locked and doesn't unlock.
>>
>> I'll investigate.
>>
>> Paul
>>
>> On Tue, Mar 16, 2010 at 3:47 AM, Christian Magnusson <[email protected]> wrote:
>> > I looked breifly on the source, and I can’t find any reason to the
>> hanging
>> > lock in ow_read.c:244.
>> >
>> > It should lock the parsedname, read the value, and unlock just after
>> it’s
>> > finished. I can’t see that it could skip this unlock function.
>> >
>> >
>> >
>> > I’m afraid I have too much here at work and home to look more into it
>> right
>> > now.
>> >
>> >
>> >
>> > /Christian
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > From: Patrik Åkerfeldt [mailto:[email protected]]
>> > Sent: den 11 mars 2010 18:25
>> > To: OWFS (One-wire file system) discussion and help
>> > Subject: Re: [Owfs-developers] owserver stops responding
>> >
>> >
>> >
>> > Thanks for the reply,
>> >
>> > Here's the output from gdb:
>> >
>> > Thread 3 (Thread 0x473f0940 (LWP 24920)):
>> > #0 0x0000003c0300c21f in sem_timedwait () from /lib64/libpthread.so.0
>> > #1 0x00000000004047ee in Handler (file_descriptor=14) at handler.c:249
>> > #2 0x00002ba23185266b in ServerProcessHandler (arg=0x27dc6c0) at
>> > ow_net_server.c:158
>> > #3 0x0000003c030062f7 in start_thread () from /lib64/libpthread.so.0
>> > #4 0x0000003c028d1e3d in clone () from /lib64/libc.so.6
>> >
>> > Thread 2 (Thread 0x47df1940 (LWP 24921)):
>> > #0 0x0000003c0300c888 in __lll_mutex_lock_wait () from
>> > /lib64/libpthread.so.0
>> > #1 0x0000003c030088a5 in _L_mutex_lock_107 () from
>> /lib64/libpthread.so.0
>> > #2 0x0000003c03008333 in pthread_mutex_lock () from
>> /lib64/libpthread.so.0
>> > #3 0x00002ba231850466 in LockGet (pn=0x47df1048) at ow_locks.c:189
>> > #4 0x00002ba231858cad in FS_r_given_bus (owq=0x47df1020) at
>> ow_read.c:244
>> > #5 0x00002ba231858fc2 in FS_read_distribute (owq=0x47df1020) at
>> > ow_read.c:207
>> > #6 0x00002ba2318597ec in FS_read_postparse (owq=0x47df1020) at
>> > ow_read.c:110
>> > #7 0x000000000040332c in ReadHandler (hd=0x473efec0, cm=0x47df10e0,
>> > owq=0x47df1020)
>> > at read.c:84
>> > #8 0x0000000000403ff7 in DataHandler (v=<value optimized out>) at
>> > data.c:133
>> > #9 0x0000003c030062f7 in start_thread () from /lib64/libpthread.so.0
>> > #10 0x0000003c028d1e3d in clone () from /lib64/libc.so.6
>> >
>> > Thread 1 (Thread 0x2ba231d322c0 (LWP 14327)):
>> > #0 0x0000003c0300dba8 in do_sigwait () from /lib64/libpthread.so.0
>> > #1 0x0000003c0300dc4d in sigwait () from /lib64/libpthread.so.0
>> > #2 0x00002ba231852179 in ServerProcess (HandlerRoutine=0x404350
>> <Handler>,
>> > Exit=0x402050 <ow_exit>) at ow_net_server.c:349
>> > #3 0x000000000040223b in main (argc=8, argv=0x7fff792bf808) at
>> > owserver.c:162
>> >
>> > I hope this will explain things.
>> > -Patrik
>> >
>> > 2010/3/10 Christian Magnusson <[email protected]>
>> >
>> > It really seems like a dead-lock in the code + It seems a bit strange
>> that
>> > the handler_count inside the brackets are not incremented one by one.
>> >
>> > This means that you have multiple applications polling the device… I
>> would
>> > guess 5-10 shell-scripts filling up the request queue/capacity.
>> >
>> >
>> >
>> > # ps –ef | grep owserver
>> >
>> > Find the process id of owserver.
>> >
>> >
>> >
>> > Halt the execution with gdb.
>> >
>> > # gdb /opt/owfs/bin/owserver –p 12345
>> >
>> > (show backtrace for all running threads with gdb)
>> >
>> > $ thread apply all bt
>> >
>> >
>> >
>> > Press return to scroll down all pages and copy the result here. It will
>> show
>> > if any thread are hanging in a lock-call.
>> >
>> >
>> >
>> > I will be on vacation until Sunday, but I’m sure Paul can trace down the
>> > problem if the gdb-output show some obvious hanging.
>> >
>> >
>> >
>> > /Christian
>> >
>> >
>> >
>> >
>> >
>> > From: Patrik Åkerfeldt [mailto:[email protected]]
>> > Sent: den 10 mars 2010 18:57
>> > To: [email protected]
>> > Subject: Re: [Owfs-developers] owserver stops responding
>> >
>> >
>> >
>> > I have the same problem with owfs-2.7p31. Although the output is
>> slightly
>> > different:
>> >
>> > DEBUG: handler.c:SingleHandler(317) NOPING handler {165}
>> > /26.6447E7000000/temperature
>> > CALL: handler.c:SingleHandler(273) sem_timedwait timeout time=0.101
>> > (timeout=100 ms)
>> > DEBUG: handler.c:SingleHandler(317) NOPING handler {170}
>> > /26.6447E7000000/vis
>> > CALL: handler.c:SingleHandler(273) sem_timedwait timeout time=0.101
>> > (timeout=100 ms)
>> > DEBUG: handler.c:SingleHandler(317) NOPING handler {153}
>> > /26.6447E7000000/temperature
>> > CALL: handler.c:SingleHandler(273) sem_timedwait timeout time=0.101
>> > (timeout=100 ms)
>> > DEBUG: handler.c:SingleHandler(317) NOPING handler {161}
>> > /26.6447E7000000/temperature
>> > CALL: handler.c:SingleHandler(273) sem_timedwait timeout time=0.101
>> > (timeout=100 ms)
>> > DEBUG: handler.c:SingleHandler(317) NOPING handler {157}
>> > /26.6447E7000000/vis
>> > CALL: handler.c:SingleHandler(273) sem_timedwait timeout time=0.101
>> > (timeout=100 ms)
>> > DEBUG: handler.c:SingleHandler(317) NOPING handler {156}
>> > /26.6447E7000000/vis
>> >
>> > I would really appreciate some help in this matter.
>> > -Patrik
>> >
>> > Den 10 mars 2010 11.49 skrev Patrik Åkerfeldt <
>> [email protected]>:
>> >
>> > No, wrong conclusion of me. I removed the /temperature polling and let
>> the
>> > vis reading remain but it still "hangs".
>> >
>> > I will try the latest version of owfs instead.
>> >
>> >
>> >
>> > -Patrik
>> >
>> >
>> >
>> > Den 10 mars 2010 11.46 skrev Patrik Åkerfeldt <
>> [email protected]>:
>> >
>> >
>> >
>> > Could it be that I poll the same device (26.6447E7000000) on different
>> > readings (temperature and vis) at the same time? And that it some how
>> hangs?
>> >
>> >
>> >
>> > Polling is made from bash scripts invoked using crontab at the same
>> > intervall.
>> >
>> >
>> >
>> > -Patrik
>> >
>> >
>> >
>> > Den 9 mars 2010 21.29 skrev Patrik Åkerfeldt <
>> [email protected]>:
>> >
>> >
>> >
>> > I've been adding a new device to my 1-wire network that I regularly poll
>> (a
>> > solar sensor + temp from hobby-boards). Since then (I think!), owserver
>> > seems to stop responding after a while. Sometimes it takes 6-10h before
>> it
>> > "hangs" and sometimes just a couple of minutes.
>> >
>> > The last time I started owserver with --error_level=9 and this is the
>> output
>> > when owserver is malfunctioning:
>> >
>> > DEBUG: to_client.c:ToClient(63) Send delay message
>> > DEBUG: handler.c:SingleHandler(239) NOPING handler {43}
>> > /26.6447E7000000/temperature
>> > DEBUG: handler.c:SingleHandler(229) PING handler {51}
>> > /26.6447E7000000/temperature
>> > DEBUG: to_client.c:ToClient(56) payload=-1 size=0, ret=0, sg=0x0
>> offset=0
>> > DEBUG: to_client.c:ToClient(63) Send delay message
>> > DEBUG: handler.c:SingleHandler(239) NOPING handler {53}
>> > /26.6447E7000000/temperature
>> > DEBUG: handler.c:SingleHandler(239) NOPING handler {55}
>> > /26.6447E7000000/vis
>> > DEBUG: handler.c:SingleHandler(239) NOPING handler {60}
>> > /26.6447E7000000/temperature
>> > DEBUG: handler.c:SingleHandler(239) NOPING handler {59}
>> > /26.6447E7000000/vis
>> > DEBUG: handler.c:SingleHandler(229) PING handler {57}
>> > /26.6447E7000000/temperature
>> > DEBUG: to_client.c:ToClient(56) payload=-1 size=0, ret=0, sg=0x0
>> offset=0
>> > DEBUG: to_client.c:ToClient(63) Send delay message
>> > DEBUG: handler.c:SingleHandler(239) NOPING handler {47}
>> > /26.6447E7000000/temperature
>> > DEBUG: handler.c:SingleHandler(239) NOPING handler {45}
>> > /26.6447E7000000/vis
>> > DEBUG: handler.c:SingleHandler(239) NOPING handler {49}
>> > /26.6447E7000000/vis
>> > DEBUG: handler.c:SingleHandler(239) NOPING handler {43}
>> > /26.6447E7000000/temperature
>> > DEBUG: handler.c:SingleHandler(239) NOPING handler {51}
>> > /26.6447E7000000/temperature
>> > DEBUG: handler.c:SingleHandler(239) NOPING handler {53}
>> > /26.6447E7000000/temperature
>> > DEBUG: handler.c:SingleHandler(239) NOPING handler {55}
>> > /26.6447E7000000/vis
>> > DEBUG: handler.c:SingleHandler(239) NOPING handler {60}
>> > /26.6447E7000000/temperature
>> > DEBUG: handler.c:SingleHandler(239) NOPING handler {59}
>> > /26.6447E7000000/vis
>> > DEBUG: handler.c:SingleHandler(239) NOPING handler {57}
>> > /26.6447E7000000/temperature
>> > DEBUG: handler.c:SingleHandler(229) PING handler {47}
>> > /26.6447E7000000/temperature
>> > DEBUG: to_client.c:ToClient(56) payload=-1 size=0, ret=0, sg=0x0
>> offset=0
>> >
>> > I can't tell what's wrong from these messages but perhaps somebody else
>> can?
>> > The issue is temporary resolved by restarting owserver.
>> >
>> > owserver is started this way: /opt/owfs/bin/owserver -u -p 3001
>> > --usb_regulartime --timeout_volatile=0 --foreground --error_level=9
>> > Running owserver from owfs-2.7p26.
>> >
>> > Thanks,
>> > -Patrik
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > __________ Information från ESET NOD32 Antivirus, version av
>> > virussignaturdatabas 4933 (20100310) __________
>> >
>> >
>> >
>> > Meddelandet har kontrollerats av ESET NOD32 Antivirus.
>> >
>> >
>> >
>> > http://www.esetscandinavia.com
>> >
>> > __________ Information från ESET NOD32 Antivirus, version av
>> > virussignaturdatabas 4933 (20100310) __________
>> >
>> > Meddelandet har kontrollerats av ESET NOD32 Antivirus.
>> >
>> > http://www.esetscandinavia.com
>> >
>> >
>> ------------------------------------------------------------------------------
>> > Download Intel® Parallel Studio Eval
>> > Try the new software tools for yourself. Speed compiling, find bugs
>> > proactively, and fine-tune applications for parallel performance.
>> > See why Intel Parallel Studio got high marks during beta.
>> > http://p.sf.net/sfu/intel-sw-dev
>> > _______________________________________________
>> > Owfs-developers mailing list
>> > [email protected]
>> > https://lists.sourceforge.net/lists/listinfo/owfs-developers
>> >
>> >
>> >
>> >
>> >
>> > __________ Information från ESET NOD32 Antivirus, version av
>> > virussignaturdatabas 4933 (20100310) __________
>> >
>> >
>> >
>> > Meddelandet har kontrollerats av ESET NOD32 Antivirus.
>> >
>> >
>> >
>> > http://www.esetscandinavia.com
>> >
>> > __________ Information från ESET NOD32 Antivirus, version av
>> > virussignaturdatabas 4947 (20100315) __________
>> >
>> > Meddelandet har kontrollerats av ESET NOD32 Antivirus.
>> >
>> > http://www.esetscandinavia.com
>> >
>> >
>> ------------------------------------------------------------------------------
>> > Download Intel® Parallel Studio Eval
>> > Try the new software tools for yourself. Speed compiling, find bugs
>> > proactively, and fine-tune applications for parallel performance.
>> > See why Intel Parallel Studio got high marks during beta.
>> > http://p.sf.net/sfu/intel-sw-dev
>> > _______________________________________________
>> > Owfs-developers mailing list
>> > [email protected]
>> > https://lists.sourceforge.net/lists/listinfo/owfs-developers
>> >
>> >
>>
>>
>> ------------------------------------------------------------------------------
>> Download Intel® Parallel Studio Eval
>> Try the new software tools for yourself. Speed compiling, find bugs
>> proactively, and fine-tune applications for parallel performance.
>> See why Intel Parallel Studio got high marks during beta.
>> http://p.sf.net/sfu/intel-sw-dev
>> _______________________________________________
>> Owfs-developers mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/owfs-developers
>>
>
>
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Owfs-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/owfs-developers