Package: gphotofs Version: 0.4.0-3 Severity: normal Hello,
I noticed that when something is loading large files from a gphotofs mounted directory, all access to that directory is frozen. I.e. any other FUSE operation on that dir gets locked. I had a look with strace at what is happening there and found that an "open" call of some client program to a file is stuck (means: openat function of the fuse module). While the "open" call is not finished, the memory usage of gphotofs process is growing, untill suddenly openat is released and then the data flows in a storm from the memory buffer to the reading process. And only then the fuse filesystem is released, all other processes that were hung at that directory are released and can continue. Then I had a look at the gphotofs.c and found the confirmation. The authors are using gp_camera_file_get right in the open implementation, instead of gp_camera_file_get_info. I guess they are doing it because it's the only way to read data and there is no API function for partial data read which could be used in the "read" implementation later. But then... please, do NOT read the whole thing in the _open_ call. _open_ is supposed to be quick. Please shift the file reading code into the first read call. Regards, Eduard. PS: I had a closer look at libgphoto and apparently there is really no concept of a streaming object or any other preparation for partial reads without using memory buffers. It's not even possible to specify a custom allocator (where somebody could use mmap to create a buffer). So... yeah, multi-gigabyte video files are happy to be rotated through the VM swap if the user does not have gigabytes of RAM (NOT). -- System Information: Debian Release: 6.0 APT prefers unstable APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 2.6.37-rc7-git2 (SMP w/4 CPU cores; PREEMPT) Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages gphotofs depends on: ii fuse-utils 2.8.4-1.1 Filesystem in USErspace (utilities ii libc6 2.11.2-7 Embedded GNU C Library: Shared lib ii libexif12 0.6.19-1 library to parse EXIF files ii libfuse2 2.8.4-1.1 Filesystem in USErspace library ii libglib2.0-0 2.24.2-1 The GLib library of C routines ii libgphoto2-2 2.4.10.1-0.1 gphoto2 digital camera library ii libgphoto2-port0 2.4.10.1-0.1 gphoto2 digital camera port librar ii libusb-0.1-4 2:0.1.12-16 userspace USB programming library gphotofs recommends no packages. gphotofs suggests no packages. -- no debconf information -- <elominat> gibts eigentlich einen noob chan?? <Kane32> das ganze quakenet -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

