readlink: fuse: bad error value: 4

931 views
Skip to first unread message

Vink

unread,
Sep 30, 2015, 2:02:46 PM9/30/15
to OSXFUSE
Any idea, why osxfuse would throw this error randomly?


unique: 6, opcode: READLINK (5), nodeid: 87, insize: 40, pid: 36633
readlink
/folder1/A/1 1025
fuse
: bad error value: 4
   unique
: 6, error: -34 (Result too large), outsize: 16


Anyone else see this?

Thanks

Sam Moffatt

unread,
Sep 30, 2015, 4:52:32 PM9/30/15
to osxfus...@googlegroups.com
The error message is saying your callback is returning an invalid value. Double check your implementation to make sure you're not returning something unexpected. 

Cheers,

Sam

--
Sam Moffatt

Note: I'm not at my desk, responses may be delayed. Apologies for the typos, smartphones aren't all that smart. 

--
You received this message because you are subscribed to the Google Groups "OSXFUSE" group.
To unsubscribe from this group and stop receiving emails from it, send an email to osxfuse-grou...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

arritje nof

unread,
Sep 30, 2015, 8:34:03 PM9/30/15
to OSXFUSE
also see the xattr manpage (online).

     Some attribute data may have a fixed length that is enforced by the sys-

     tem.  For example,


           % xattr -w com.apple.FinderInfo 0 foo

           xattr: [Errno 34] Result too large: 'foo'


     The com.apple.FinderInfo attribute must be 32 bytes in length.


The message is a bit misleading, as it can also actually mean result too small..(as in above example)
i was seeing this error when my xattr-implementtion was returning corrupt data.

gr
arri

Vink

unread,
Sep 30, 2015, 9:53:11 PM9/30/15
to OSXFUSE
Awesome that worked.

The OSX c 'readlink' returns the number of bytes it wrote in the input buffer. Where as the 'fuse readlink' expects 0 on success.

I think, it would have been better if the returned values of fuse_operation functions was kept same as their corresponding 'c' calls.

Sam Moffatt

unread,
Oct 1, 2015, 11:39:04 PM10/1/15
to osxfus...@googlegroups.com
OSXFUSE is a port to Mac OS X of FUSE from Linux, as such you'd need to pick that up with the core FUSE folk.

I suggest reading through the fuse.h file or the online documentation for your callbacks. I'll note this from just above fuse_operations in my local copy of fuse.h:

 * Most of these should work very similarly to the well known UNIX
 * file system operations.  A major exception is that instead of
 * returning an error in 'errno', the operation should return the
 * negated error value (-errno) directly.


Cheers,

Sam

--
Reply all
Reply to author
Forward
0 new messages