I looked closely at the error. Near as I can tell, it's the utility, like
'cat' that's supplying the 131072 (128K) read request size.

The actual size is 12 bytes and that number is returned in the preceding
fstat call. I think the ulitities just ask for a generic large read, and I
presume that size has increased from 64k to 128k recently which is over
owfs's arbitrary internal limit.

I added a size limiter in the owfs read code and everything now works. A
new release 2.9p9 now includes the fix.

Thank you Markus and Stefano for finding and investigating this problem.

Paul Alfille

On Mon, Jan 5, 2015 at 2:54 PM, Markus Gaugusch <mar...@gaugusch.at> wrote:

> Hi Stefano and Paul!
>
> Thank you very much for your help!
>
> I had migrated my scripts to use owget, etc. But it's good to know that
> there is another solution until the bug is fixed. I also noticed that my
> php script (using read access to owfs files, not owphp) is also still
> working fine.
>
> Thanks again,
> Markus
>
>
> On Jan 5, Stefano Miccoli <mo...@icloud.com> wrote:
>
>  The present bug apparently affects only shell programs (and only if cat or
>> cp use a big buffer size). Waiting for a patch a quick workaround for bash
>> users could be substituting
>> temp=$(cat /mnt/1wire/XXXX/temp)
>> with
>> temp=$(< /mnt/1wire/XXXX/temp)
>>
>> and
>>
>> cat /mnt/1wire/XXXX/temp
>> with
>> echo $(< /mnt/1wire/XXXX/temp)
>>
>>
>> Of course another option is to avoid the FUSE driver, and access directly
>> owserver (via owshell/owdir from the shell, or one of the language
>> bindings
>> in module/ownet, not to speak of my own pyownet ;-))
>>
>>
>> Stefano
>>
>>
>>
>>       On 05 Jan 2015, at 05:43, David Lazarou <dlazaro...@gmail.com>
>>       wrote:
>>
>> I ran across this same problem using a Raspberry Pi.
>>
>> http://owfs-developers.1086194.n5.nabble.com/quot-
>> Message-too-long-quot-err
>> ors-with-owfs-tt10946.html
>>
>> I never was never able to discover what the problem was.
>>
>> --
>> David
>>
>> On Mon, Jan 5, 2015 at 10:58 AM, Stefano Miccoli <mo...@icloud.com>
>> wrote:
>>       Somehow I was able to replicate the problem in Python.
>> When I type in Python
>>
>> >>> f = open(‘/mnt/1wire/10.67C6697351FF/temperature')
>> >>> f.read(1024)
>> '56.5153'
>> >>> f.close()
>>
>> I get from owfs —debug
>>
>>   DEBUG: ow_read.c:(231) About to read
>> </10.67C6697351FF/temperature> extension=0 size=4096 offset=0
>>   DEBUG: ow_read.c:(231) About to read
>> </10.67C6697351FF/temperature> extension=0 size=4096 offset=7
>>
>> Increasing the input buffer size
>>
>> >>> fip = open(‘/mnt/1wire/10.67C6697351FF/temperature')
>> >>> fip.read(131072)
>> Traceback (most recent call last):
>>   File "<stdin>", line 1, in <module>
>> IOError: [Errno 90] Message too long
>>
>> and
>>
>> DEBUG: ow_read.c:(231) About to read
>> </10.67C6697351FF/temperature> extension=0 size=127292 offset=0
>>
>>
>> My conjecture: given the system call
>>
>> ssize_t read(int fd, void *buf, size_t count);
>>
>> the ‘count' parameter is passed via FUSE up
>> to ow_server_message.c and causes the error. (and presumably cat
>> and cp use a bigger buffer size than head, less and tail.)
>>
>> Stefano
>>
>>
>>
>>       On 04 Jan 2015, at 23:05, Paul Alfille
>>       <paul.alfi...@gmail.com> wrote:
>>
>> I don't have the answer yet, but it happens only with cat
>> or cp, not less,head or tail.It also happens only with
>>
>> owfs->owserver->bus, since owfs->bus is ok.
>>
>> There must be something different in the tcp protocol
>> handling. I'll investigate further.
>>
>> Paul
>>
>> On Sun, Jan 4, 2015 at 1:20 PM, Jacob Joseph
>> <ja...@jjoseph.org> wrote:
>>       I recently moved my OWFS setup to a new
>>       installation (on Funtoo,
>>       should it matter), and have noticed that I do
>>       have the issue Markus
>>       mentioned.
>>
>>       I haven't spent much time debugging quite
>>       yet.  Curiously, though,
>>       while 'cat' doesn't work, other methods of
>>       reading such as 'head' or
>>       opening the file in Python seem unaffected.
>>
>>       ~Jacob
>>
>>
>>       On Sun, 04 Jan 2015 10:59:08 +0100
>>       Stefano Miccoli <mo...@icloud.com> wrote:
>>
>>       > It seems that your question is still
>>       unanswered, so I will try to
>>       > help you, although I___m not able to
>>       replicate your setup (and I___m no
>>       > expert of the internal workings of owfs).
>>       >
>>       > From your message it seems that the problem
>>       is limited to owfs, and
>>       > not in owserver, but let me double-check.
>>       >
>>       > 1) Do you have an owserver running and owfs
>>       is quering owserver?
>>       > (You can check by inspecting owfs.conf and
>>       running ___sudo netstat
>>       > -tlp___. If there is an owserver deamon
>>       running there should be a line
>>       > like
>>       >
>>       > Active Internet connections (only servers)
>>       > Proto Recv-Q Send-Q Local Address
>>        Foreign Address
>>       > State       PID/Program name tcp        0
>>         0
>>       > *:4304                  *:*
>>          LISTEN
>>       > 31595/owserver
>>       >
>>       > 2) If you have an owserver running can you
>>       confirm that
>>       > ___owread /10.FE771D020800/temperature___
>>       gives you a sensible answer
>>       > while ___cat
>>       /mnt/1wire/10.FE771D020800/temperature___
>>       yields an error?
>>       >
>>       >
>>       > If the problem is only in owfs a workaround
>>       would be using
>>       > owdir/owread/owwrite in the shell, and one
>>       of the clients in
>>       > module/ownet for other languages.
>>       >
>>       > Bye
>>       >
>>       > Stefano
>>       >
>>       > > On 30 Dec 2014, at 22:15, Markus Gaugusch
>>       <mar...@gaugusch.at
>>       > > <mailto:mar...@gaugusch.at>> wrote:
>>       > >
>>       > > Hi,
>>       > >
>>       > > Symptom:
>>       > > monitor:/mnt/1wire/10.FE771D020800 # cat
>>       temperature
>>       > > cat: temperature: Message too long
>>       > >
>>       > > I've updated my monitoring server from
>>       openSUSE 13.1 to 13.2, which
>>       > > broke owfs. I had 2.9p5 before and also
>>       tried to update to 2.9p8,
>>       > > but the problem stayed the same. Access
>>       using owdir, owget and
>>       > > owwrite works fine. I've started owfs in
>>       debug mode, leading to the
>>       > > following output (error at the bottom).
>>       > >
>>       > >   DEBUG: ow_tcp_read.c:(63) attempt 24
>>       bytes Time: 2.000000 seconds
>>       > >   DEBUG: ow_tcp_read.c:(113) read: 24 - 0
>>       = 24
>>       > >   DEBUG: ow_tcp_read.c:(63) attempt 8
>>       bytes Time: 2.000000 seconds
>>       > >   DEBUG: ow_tcp_read.c:(113) read: 8 - 0 =
>>       8
>>       > >   DEBUG: ow_buslock.c:(54)
>>       pthread_mutex_lock 9A270CC begin
>>       > >   DEBUG: ow_buslock.c:(54)
>>       pthread_mutex_lock 9A270CC done
>>       > >   DEBUG: ow_buslock.c:(56)
>>       pthread_mutex_lock B779D9A0 begin
>>       > >   DEBUG: ow_buslock.c:(56)
>>       pthread_mutex_lock B779D9A0 done
>>       > >   DEBUG: ow_buslock.c:(56)
>>       pthread_mutex_unlock B779D9A0 begin
>>       > >   DEBUG: ow_buslock.c:(56)
>>       pthread_mutex_unlock B779D9A0 done
>>       > >   DEBUG: ow_buslock.c:(76)
>>       pthread_mutex_lock B779D9A0 begin
>>       > >   DEBUG: ow_buslock.c:(76)
>>       pthread_mutex_lock B779D9A0 done
>>       > >   DEBUG: ow_buslock.c:(79)
>>       pthread_mutex_unlock B779D9A0 begin
>>       > >   DEBUG: ow_buslock.c:(79)
>>       pthread_mutex_unlock B779D9A0 done
>>       > >   DEBUG: ow_buslock.c:(81)
>>       pthread_mutex_unlock 9A270CC begin
>>       > >   DEBUG: ow_buslock.c:(81)
>>       pthread_mutex_unlock 9A270CC done
>>       > >   DEBUG: ow_presence.c:(269) Presence of
>>       10 FE 77 1D 02 08 00 3A
>>       > > FOUND on bus 127.0.0.1
>>       > >   DEBUG: ow_cache.c:(546) Adding device
>>       location 10 FE 77 1D 02 08
>>       > > 00 3A bus=0
>>       > >   DEBUG: ow_cache.c:(635) Add to cache sn
>>       10 FE 77 1D 02 08 00 3A
>>       > > pointer=0xb779d914 index=0 size=4
>>       > >   DEBUG: ow_cache.c:(667)
>>       pthread_mutex_lock B779D9A0 begin
>>       > >   DEBUG: ow_cache.c:(667)
>>       pthread_mutex_lock B779D9A0 done
>>       > >   DEBUG: ow_cache.c:(670)
>>       pthread_mutex_unlock B779D9A0 begin
>>       > >   DEBUG: ow_cache.c:(670)
>>       pthread_mutex_unlock B779D9A0 done
>>       > >   DEBUG: ow_cache.c:(336)
>>       pthread_mutex_lock B779D9A0 begin
>>       > >   DEBUG: ow_cache.c:(336)
>>       pthread_mutex_lock B779D9A0 done
>>       > >   DEBUG: ow_cache.c:(336)
>>       pthread_mutex_unlock B779D9A0 begin
>>       > >   DEBUG: ow_cache.c:(336)
>>       pthread_mutex_unlock B779D9A0 done
>>       > >   DEBUG: ow_read.c:(88) pthread_mutex_lock
>>       B779D9A0 begin
>>       > >   DEBUG: ow_read.c:(88) pthread_mutex_lock
>>       B779D9A0 done
>>       > >   DEBUG: ow_read.c:(95)
>>       pthread_mutex_unlock B779D9A0 begin
>>       > >   DEBUG: ow_read.c:(95)
>>       pthread_mutex_unlock B779D9A0 done
>>       > >   DEBUG: ow_read.c:(96)
>>       /10.FE771D020800/temperature return -90
>>       > >   DEBUG: ow_parsename.c:(61)
>>       /10.FE771D020800/temperature
>>       > >    unique: 140, error: -90 (Message too
>>       long), outsize: 16
>>       > > unique: 141, opcode: RELEASE (18), nodeid:
>>       41, insize: 64, pid: 0
>>       > > release[0] flags: 0x8000
>>       > >    CALL: owfs_callback.c:(135) RELEASE
>>       > > path=/10.FE771D020800/temperature unique:
>>       141, success, outsize: 16
>>       > >
>>       > >
>>       > >
>>       > > It might be related to the new kernel, but
>>       I'm not sure ...
>>       > > monitor:~ # uname -a
>>       > > Linux monitor 3.16.7-7-default #1 SMP Wed
>>       Dec 17 18:00:44 UTC 2014
>>       > > (762f27a) i686 i686 i386 GNU/Linux
>>       > >
>>       > >
>>       > > Help! :-)
>>       > > (and many thanks for owfs!)
>>       > >
>>       > > kind regards,
>>       > > Markus
>>       > >
>>       > >-----------------------------------------------------------
>> ----------------
>>       ---
>>       > > Dive into the World of Parallel
>>       Programming! The Go Parallel
>>       > > Website, sponsored by Intel and developed
>>       in partnership with
>>       > > Slashdot Media, is your hub for all things
>>       parallel software
>>       > > development, from weekly thought
>>       leadership blogs to news, videos,
>>       > > case studies, tutorials and more. Take a
>>       look and join the
>>       > > conversation now.
>>       http://goparallel.sourceforge.net
>> > > <http://goparallel.sourceforge.net/>
>> > > _______________________________________________
>> Owfs-developers
>> > > mailing list
>> Owfs-developers@lists.sourceforge.net
>> > > <mailto:Owfs-developers@lists.sourceforge.net>
>> > >
>> https://lists.sourceforge.net/lists/listinfo/owfs-developers
>> >
>>
>> ------------------------------------------------------------
>> ---------------
>> ---
>> Dive into the World of Parallel Programming! The Go
>> Parallel Website,
>> sponsored by Intel and developed in partnership with
>> Slashdot Media, is your
>> hub for all things parallel software development,
>> from weekly thought
>> leadership blogs to news, videos, case studies,
>> tutorials and more. Take a
>> look and join the conversation now.
>> http://goparallel.sourceforge.net
>> _______________________________________________
>> Owfs-developers mailing list
>> Owfs-developers@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/owfs-developers
>>
>>
>> ------------------------------------------------------------
>> ---------------
>> ---
>> Dive into the World of Parallel Programming! The Go
>> Parallel Website,
>> sponsored by Intel and developed in partnership with
>> Slashdot Media, is your
>> hub for all things parallel software development, from
>> weekly thought
>> leadership blogs to news, videos, case studies, tutorials
>> and more. Take a
>> look and join the conversation now.http://goparallel.
>> sourceforge.net__________________________________________
>> _____
>> Owfs-developers mailing list
>> Owfs-developers@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/owfs-developers
>>
>>
>>
>> ------------------------------------------------------------
>> ---------------
>> ---
>> Dive into the World of Parallel Programming! The Go Parallel
>> Website,
>> sponsored by Intel and developed in partnership with Slashdot
>> Media, is your
>> hub for all things parallel software development, from weekly
>> thought
>> leadership blogs to news, videos, case studies, tutorials and
>> more. Take a
>> look and join the conversation now.
>> http://goparallel.sourceforge.net
>> _______________________________________________
>> Owfs-developers mailing list
>> Owfs-developers@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/owfs-developers
>>
>>
>> ------------------------------------------------------------
>> ---------------
>> ---
>> Dive into the World of Parallel Programming! The Go Parallel Website,
>> sponsored by Intel and developed in partnership with Slashdot Media,
>> is your
>> hub for all things parallel software development, from weekly thought
>> leadership blogs to news, videos, case studies, tutorials and more.
>> Take a
>> look and join the conversation now.http://goparallel.
>> sourceforge.net__________________________________________
>> _____
>> Owfs-developers mailing list
>> Owfs-developers@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/owfs-developers
>>
>>
>>
>>
>>
> --
> __________________    /"\
> Markus Gaugusch       \ /    ASCII Ribbon Campaign
> markus(at)gaugusch.at  X     Against HTML Mail
>                       / \
>
> ------------------------------------------------------------------------------
> Dive into the World of Parallel Programming! The Go Parallel Website,
> sponsored by Intel and developed in partnership with Slashdot Media, is
> your
> hub for all things parallel software development, from weekly thought
> leadership blogs to news, videos, case studies, tutorials and more. Take a
> look and join the conversation now. http://goparallel.sourceforge.net
> _______________________________________________
> Owfs-developers mailing list
> Owfs-developers@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/owfs-developers
>
>
------------------------------------------------------------------------------
Dive into the World of Parallel Programming! The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net
_______________________________________________
Owfs-developers mailing list
Owfs-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/owfs-developers

Reply via email to