[RTEMS Project] #4698: Potential Deadlock While Performing RFS Operations
RTEMS trac
trac at rtems.org
Mon Aug 8 23:08:09 UTC 2022
#4698: Potential Deadlock While Performing RFS Operations
-------------------------+--------------------
Reporter: Joel | Owner: (none)
Type: defect | Status: new
Priority: normal | Milestone:
Component: arch/sparc | Version: 4.11
Severity: normal | Keywords: RFS
Blocked By: | Blocking:
-------------------------+--------------------
I'm hitting what seems to be a potential deadlock issue in a RTEMS 4.11
and SPARC V8 based system. The file system is configured as
RTEMS_FILESYSTEM_TYPE_RFS. The system creates, modifies, and deletes files
in an asynchronous fashion throughout the execution. At some point, I
started to see intermittent dropout of system logging. I think the "at
some point" can be attributed to the volume of file system related
operations growing as the system grew.
As I investigated, it appears that the system never returns from fopen()
calls (at least most commonly). I modified the implementation of the
system such that readdir() is called periodically (like 50 times per
execution), in the meantime, I spam opening and closing files. This seems
to reproduce the issue every time.
To remove any potential issues with the system that may be causing, or
exacerbating the problem, I wrote a standalone application with 2 tasks.
One task would open/close files. The other task would read the directory.
Same file system type, disk size, device and mount path, etc. I was able
to reproduce the issue within this application consistently. That being
said, the deadlock seems to happen anywhere from a few minutes, to almost
a half hour. Attached is the implementation of initialization of the
filesystem and tasks.
GDB doesn't seem to give much useful information on either the full system
case, or the sample application. That being said, it is interesting that
the backtrace and thread info show the same thing. We seem to end up in
the BSP idle thread.
--
Ticket URL: <http://devel.rtems.org/ticket/4698>
RTEMS Project <http://www.rtems.org/>
RTEMS Project
More information about the bugs
mailing list