Skip to content

Thunar process hangs on poll() when trying to unmount USB storage

Submitted by Sam Varshavchik

Assigned to Xfce Bug Triage

Link to original bug (#13729)

Description

Thunar 1.6.11, Fedora 26.

A request to unmount a mounted USB storage volume results in the following strace of the thunar process:

eventfd2(0, EFD_CLOEXEC|EFD_NONBLOCK) = 17 futex(0x7fd7fe8f6218, FUTEX_WAIT_PRIVATE, 2, NULL) = -1 EAGAIN (Resource temporarily unavailable) futex(0x7fd7fe8f6218, FUTEX_WAKE_PRIVATE, 1) = 0 futex(0x560aed102fb0, FUTEX_WAKE_PRIVATE, 1) = 0 write(9, "\1\0\0\0\0\0\0\0", 8) = 8 futex(0x560aed100380, FUTEX_WAKE_PRIVATE, 1) = 1 futex(0x560aed1000a0, FUTEX_WAKE_PRIVATE, 1) = 1 futex(0x560aed0f80a8, FUTEX_WAKE_PRIVATE, 1) = 1 poll([{fd=17, events=POLLIN}], 1, 25000 <unfinished ...>) = ?

Thunar creates a new event file descriptor, and get stuck poll()ing it.

Someone else, with a lot more patience than me, captured a fuller strace that shows multiple instances of this pattern repeated (multiple poll() timeouts, with each one taking 25 seconds). More info here:

https://bugzilla.redhat.com/show_bug.cgi?id=1469789

Specifically here:

https://bugzilla.redhat.com/attachment.cgi?id=1302303

Eventually Thunar does succeed in unmounting the volume, but this apparently take many, many minutes, for all of these poll()s to time out. Until it's over, Thunar is completely dead in the water, and does not respond to any X events.

Version: 1.6.11