I found out that the recently added read-timeout doesn’t
work good at all… A timeout of 1 second in ow_server.c is too low…
Don’t know exactly why, but I end up with EIO errors when reading
temperatures very often. Host1: owserver
–d /dev/tty/1 (Slow Linksys router with 1-wire adapter connected.) owfs
(connecting to host1) temploggerd
(frequently writing 1 to /simultaneous/temperature and reading temperatures and
full scandir() in /uncached) Host2: owfs
(connecting to host1) temploggerd
(frequently writing 1 to /simultaneous/temperature and reading temperatures and
full scandir() in /uncached) Host3: owfs cat
/mnt/1wire/uncached/10.*/temperatures (fails _very_ often with EIO errors) A command like “ls –l /1wire/uncached/”
takes some time to execute, and that blocks the owserver for some time. If somebody else try to do a full scandir or using
the 1-wire devices, the 1-second timeout is exceeded very easy. When I raised it to 10 seconds, it was 100% stable again.
But is this enough for all situations? What happens if you have 1000 1-wire
devices and 2 hosts try to do a full scandir() ? I think it’s important to protect the connect()
in ow_net.c:ClientConnect() too… connect() could hang for minutes if you
don’t get any packets back from the server. Any ideas? /Christian |
- [Owfs-developers] Timeout Christian Magnusson
- Re: [Owfs-developers] Timeout Paul Alfille
- SV: [Owfs-developers] Timeout Christian Magnusson
- Re: SV: [Owfs-developers] Timeout Paul Alfille
- Re: SV: [Owfs-developers] Timeout Paul Alfille