Description of problem: I was using the desktop components to send an image file to a bluetooth printer (Polaroid Pogo). Being at distance from the printer this failed a couple of times before I moved closer and successfully sent the file. After sending I was unable to eject or safely remove the media as the obex-client process was holding the image file open on the removable media. Version-Release number of selected component (if applicable): obexd-0.22-2.fc13.i686 (obex-client) How reproducible: Didn't have the opportunity to attempt to reproduce this. Steps to Reproduce: 1. pair with printer, using passcode 2. move away from printer such that attempts to send fail 3. move closer and send successfully, then try to eject removable media Actual results: Warned that unable to eject media as a process obex-client is holding files open on that media Expected results: obex-client should not hold files open when the transfer is not in process. Additional info: Output from lsof, pstack [cxm@Newt ~]$ lsof /media/SD\ CARD/ COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME obex-clie 8377 cxm 6r REG 8,17 1896467 511 /media/SD CARD/DCIM/101DSCI M/BILD0004.JPG obex-clie 8377 cxm 9r REG 8,17 1896467 511 /media/SD CARD/DCIM/101DSCI M/BILD0004.JPG [cxm@Newt ~]$ pstack 8377 #0 0x00845416 in __kernel_vsyscall () #1 0x0020bdab in poll () from /lib/libc.so.6 #2 0x0038164c in g_poll () from /lib/libglib-2.0.so.0 #3 0x00374044 in ?? () from /lib/libglib-2.0.so.0 #4 0x003747af in g_main_loop_run () from /lib/libglib-2.0.so.0 #5 0x08051bd1 in ?? () #6 0x0014fcc6 in __libc_start_main () from /lib/libc.so.6 #7 0x0804b521 in ?? () [cxm@Newt ~]$ lsof -p 8377 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME obex-clie 8377 cxm cwd DIR 253,0 4096 2 / obex-clie 8377 cxm rtd DIR 253,0 4096 2 / obex-clie 8377 cxm txt REG 253,0 87668 31289 /usr/libexec/obex-clie nt obex-clie 8377 cxm mem REG 253,0 141492 118 /lib/ld-2.12.so obex-clie 8377 cxm mem REG 253,0 1855556 11662 /lib/libc-2.12.so obex-clie 8377 cxm mem REG 253,0 133136 11998 /lib/libpthread-2.12.s o obex-clie 8377 cxm mem REG 253,0 41728 12002 /lib/librt-2.12.so obex-clie 8377 cxm mem REG 253,0 1049108 12005 /lib/libglib-2.0.so.0. 2400.1 obex-clie 8377 cxm mem REG 253,0 286380 12004 /lib/libdbus-1.so.3.4. 0 obex-clie 8377 cxm mem REG 253,0 41648 26099 /usr/lib/libopenobex.so.1.4.0 obex-clie 8377 cxm mem REG 253,0 98328 17092 /usr/lib/libbluetooth.so.3.7.0 obex-clie 8377 cxm mem REG 253,0 33844 17090 /usr/lib/libusb-0.1.so.4.4.4 obex-clie 8377 cxm 0u CHR 1,3 0t0 3928 /dev/null obex-clie 8377 cxm 1u CHR 1,3 0t0 3928 /dev/null obex-clie 8377 cxm 2u CHR 1,3 0t0 3928 /dev/null obex-clie 8377 cxm 3u unix 0xe62a4200 0t0 65438 socket obex-clie 8377 cxm 4u CHR 1,3 0t0 3928 /dev/null obex-clie 8377 cxm 5u unix 0xe60bda00 0t0 65442 socket obex-clie 8377 cxm 6r REG 8,17 1896467 511 /media/SD CARD/DCIM/101DSCIM/BILD0004.JPG obex-clie 8377 cxm 7r FIFO 0,8 0t0 14909 pipe obex-clie 8377 cxm 8w FIFO 0,8 0t0 14909 pipe obex-clie 8377 cxm 9r REG 8,17 1896467 511 /media/SD CARD/DCIM/101DSCIM/BILD0004.JPG file descriptor 6 and 9 are open with the file in question. I suspect there may be a failure path in the code that leaks this resource.
Confirmed bug. File handles for files sent over bluetooth (via NetworkManager then obex-client) are kept open after the xfer is comlete, which means you can't remove the source media, or, in my case, nuke the parent directory of the file, until you manually kill the obex-client pid.
*** This bug has been marked as a duplicate of bug 572455 ***