Further follow up on this issue — the COM_write_once failure seems spurious as 
it only happens while stepping in the debugger.  The later failure, however, 
happens debugging or not.  The select() call in tcp_read() is always failing 
with an invalid argument, which looks like the file_descriptor has become 
invalid between here and where it is opened shortly before.  There is then a 
cascading series of failures in the retry attempts, which aren’t very effective 
as retries because they don’t handle the failed file_descriptor.

I would be suspicious of the rest of my program (which uses libuv and 
civetweb), except that a standalone test program that only issues OWCAPI calls 
in a minimal sequence also fails the same way.  The owserver daemon, however, 
does *not* fail.

The call stack at the failure point is:

tcp_read
telnet_read
COM_read
OWServer_Enet_read
OWServer_Enet_reopen
OWServer_Enet_reopen
OWServer_Enet_setup
OWServer_Enet_detect
SetupSingleInboundConnection
SetupInboundConnections
LibStart
setup_from_args
API_init_args
OW_init_args_both
OW_init_args
<calling program>


Any suggestions from more experienced OWFS users/developers?





> On Nov 10, 2017, at 7:02 PM, Andrew Brownsword 
> <andrew.e.brownsw...@gmail.com> wrote:
> 
> With the LibStart() call inserted (or using OW_init without the program name 
> as a first argument), I can now step into the connection process.  
> Unfortunately it fails in COM_write_once during a write() call.  It is trying 
> to write 50 bytes, and the write of the first pipe causes a SIGPIPE exception 
> if I’m stepping through the code.  If I let it run past it still fails 
> somewhere with a failure to talk to the enet device.
> 
> 
>> On Nov 10, 2017, at 11:00 AM, Andrew Brownsword 
>> <andrew.e.brownsw...@gmail.com <mailto:andrew.e.brownsw...@gmail.com>> wrote:
>> 
>> I noticed that OW_init_args() doesn’t appear to call LibStart(NULL), while 
>> OW_init() does.  Is this by design?  By inserting the LibStart(NULL) call 
>> things proceed much further, and although it is still having issues 
>> communicating with my enet device, at least now it is trying!
>> 
>> 
>>> On Nov 10, 2017, at 9:38 AM, Andrew Brownsword 
>>> <andrew.e.brownsw...@gmail.com <mailto:andrew.e.brownsw...@gmail.com>> 
>>> wrote:
>>> 
>>> Thanks Justin and Jan, your replies help enormously.  I can now step into 
>>> the libowcapi code, at least, and therefore can make forward progress.  
>>> Might I suggest that the libowcapi man page(s) be supplemented to contain 
>>> this information as well?  I couldn’t find it.
>>> 
>>> The first thing I discovered was that the reason my program had no bus.0/ 
>>> entry was because I neglected to include a first argument that is the 
>>> program name.  My —enet= option got eaten and ignored as a result… a bit 
>>> surprising but easily fixed.  So now my program and the test program fail 
>>> in the same way.
>>> 
>>> The second thing noticed (and I’ve only started to dive deeper) is it 
>>> doesn’t appear that a thread was spawned during the init and the OW_get 
>>> sees a NULL pin pointer, sets a badthread flag and basically bails at that 
>>> point.  Can anyone illuminate where the thread is supposed to get spawned?
>>> 
>>> 
>>>> On Nov 8, 2017, at 4:37 PM, Justin Brewer <justin.bre...@vertivco.com 
>>>> <mailto:justin.bre...@vertivco.com>> wrote:
>>>> 
>>>> On Wed, Nov 08, 2017 at 01:51:49PM -0800, Andrew Brownsword wrote:
>>>>> Nothing but crickets — is anyone out there?  
>>>>> 
>>>>> I’ve been poking at the code to try and figure out how to enable my 
>>>>> debugger to step into the libowcapi/libow code, but the make process is 
>>>>> obscure enough that some advice would be welcome...
>>>> 
>>>> If you're working from a clean git clone, I use this for working with just 
>>>> owcapi:
>>>> 
>>>> $ autoreconf -i
>>>> $ ./configure CFLAGS='-g -O0' --prefix=$HOME/opt/owfs 
>>>> --disable-{zero,ow{perl,python,php,tcl}}
>>>> $ make
>>>> $ make -k install
>>>> 
>>>> This lets me ignore most of the language binding dependencies, and ignore 
>>>> some hardcoded install paths.
>>>> 
>>>>> 
>>>>> 
>>>>> Sent from my iPhone
>>>>> 
>>>>>> On Oct 31, 2017, at 3:11 PM, Andrew Brownsword 
>>>>>> <andrew.e.brownsw...@gmail.com <mailto:andrew.e.brownsw...@gmail.com>> 
>>>>>> wrote:
>>>>>> 
>>>>>> Hello,
>>>>>> 
>>>>>> I have an EDS ETH-OWSERVER v2, and I am trying to talk to it using the 
>>>>>> owcapi library.  The init with arts function returns success but when I 
>>>>>> try to OW_get, I don’t see any buses or sensors (just the meta 
>>>>>> directories).  If I run owserver, it sees the enet device and it’s 3 
>>>>>> buses and 22 sensors just fine.  I ran a simple owcapi test program and 
>>>>>> it sees one bus and zero sensors.
>>>>>> 
>>>>>> My program is multi-threaded and the OW_get will be called from a 
>>>>>> different thread than the init (but correctly ordered).  As for the test 
>>>>>> program, it is just the init and then a get of root.
>>>>>> 
>>>>>> I’m using the latest release and running on either an Ubuntu ARM host or 
>>>>>> on OSX... same behavior either way.
>>>> 
>>>> I have been working on some issues I've found in libow, and have seen 
>>>> similair symptoms. There's some race conditions that, if it doesn't 
>>>> outright crash, causes random failures elsewhere. I have a patch that 
>>>> resolves these issues here:
>>>> 
>>>> https://gitlab.com/justinbrewer/owfs/commit/0234a2cecb56d0b6ca4d20a6100a2d2b2ba6bffb.patch
>>>>  
>>>> <https://gitlab.com/justinbrewer/owfs/commit/0234a2cecb56d0b6ca4d20a6100a2d2b2ba6bffb.patch>
>>>> 
>>>> I was planning on submitting a pull request in the next day or so, but I 
>>>> think this patch help you.
>>>> 
>>>> ------------------------------------------------------------------------------
>>>> Check out the vibrant tech community on one of the world's most
>>>> engaging tech sites, Slashdot.org <http://slashdot.org/>! 
>>>> http://sdm.link/slashdot <http://sdm.link/slashdot>
>>>> _______________________________________________
>>>> Owfs-developers mailing list
>>>> Owfs-developers@lists.sourceforge.net 
>>>> <mailto:Owfs-developers@lists.sourceforge.net>
>>>> https://lists.sourceforge.net/lists/listinfo/owfs-developers 
>>>> <https://lists.sourceforge.net/lists/listinfo/owfs-developers>
>> 
> 

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Owfs-developers mailing list
Owfs-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/owfs-developers

Reply via email to