Bug 622092 - obex-client holds open file on removable media - resource leak
Summary: obex-client holds open file on removable media - resource leak
Keywords:
Status: CLOSED DUPLICATE of bug 572455
Alias: None
Product: Fedora
Classification: Fedora
Component: obexd
Version: 13
Hardware: All
OS: Linux
low
medium
Target Milestone: ---
Assignee: Bastien Nocera
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-08-07 09:01 UTC by cam
Modified: 2010-09-17 15:03 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2010-09-17 15:03:41 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description cam 2010-08-07 09:01:44 UTC
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.

Comment 1 Jason Farrell 2010-09-17 15:01:24 UTC
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.

Comment 2 Jason Farrell 2010-09-17 15:03:41 UTC

*** This bug has been marked as a duplicate of bug 572455 ***


Note You need to log in before you can comment on or make changes to this bug.