From: Pielage, F. <fio...@go...> - 2006-06-15 13:01:09
|
A colleague of mine is experiencing the following problem use fuse. Can anyone advise? ________________________________ From: Clark, Steven L=20 Sent: 15 June 2006 12:22 To: Pielage, Fiona Subject: Problem with concurrent ls calls to a basic fuse device Hi there, =20 I've encountered a problem when trying to do some concurrency testing of a FUSE device I've been working on. The test in question creates two threads and performs a set of ls calls to the device for several iterations checking the results each time. =20 Most of the time the test seems to work fine, but from time to time the test just hangs, and worse than that ends up hanging the entire box, forcing a reboot. Initially I was concerned that the problem was within my own code so I inserted lots of trace messages to see which of my methods the hang was occurring in. I was surprised to discover that the hang occurs completely outside my code, which implies that it is occurring somewhere in the FUSE code. =20 What I'm seeing with the trace is that the hang occurs directly after a call to getattr has finished. Running the device in debug mode shows that the getattr has completed successfully, but it then doesn't go on to call either opendir or readdir, and at this point the hang could occur before either of those calls. =20 If I run the device in single threaded mode I can't reproduce the problem at all which suggests that this is a multithreading issue. =20 My only concern is over the version of compiler we are using for our development code. The linux kernel (SUSE SLES 9 SP2) is compiled using gcc 3.3.3 as is the FUSE library. Our developed code is compiled using gcc 3.4.5. Could this cause a problem? If so could someone please explain what that problem is? =20 Thanks in advance for your time, =20 Steve Clark ste...@go... |