Project

General

Profile

Actions

Bug #3235

closed

Could not open shared memory for read 1000

Added by Phillip Davis about 8 years ago. Updated over 7 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
Category:
-
Target version:
Start date:
09/25/2013
Due date:
% Done:

100%

Estimated time:
Plus Target Version:
Release Notes:
Affected Version:
2.1
Affected Architecture:

Description

Reported in forum: http://forum.pfsense.org/index.php/topic,66764.0.html
System logs: php: /diag_nanobsd.php: Could not open shared memory for read 1000

This happens when nanoBSD force RW is enabled.

The shared memory section is used for tracking the number of things that have the filesystem mounted RW ("mount count"), and when the count returns to zero the file system is mounted RO. But when nanoBSD force RW is enabled, the shared memory section is not needed, so it never gets created.

But some code like diag_nanobsd tries to read the shared memory section.

Also, when nanoBSD force RW is disabled, there is no current mount count. So the section gets created with count 0, then conf_mount_ro is called, the count is decremented to -1 and the following diagnostic message is logged:
php: /diag_nanobsd.php: Reference 1000 is going negative, not doing unreference.
Actually, at this point there could be other processes that are doing writes, so it is not guaranteed that the filesystem can be immediately put back to RO immediately when nanoBSD force RW is disabled. IMHO all these issues would be solved of we create and maintain the reference count always, even when nanoBSD force RW is in effect.
I am happy to propose a new solution (better than what I first proposed in pull request 805).

Actions

Also available in: Atom PDF