[Plugin] Parity Check Tuning


Recommended Posts

  • 4 weeks later...

Good Evening,

 

I am observing the following entries in my syslog every 7 minutes when a parity check is in progress:

 

crond[1196]: exit status 255 from user root /usr/local/emhttp/plugins/parity.check.tuning/parity.check.tuning.php "monitor" &>/dev/null

 

Whenever this message appears in the syslog, the phplog records the following message:

 

[03-Apr-2024 16:36:27 America/New_York] PHP Fatal error:  Uncaught TypeError: array_merge(): Argument #1 must be of type array, null given in /usr/local/emhttp/plugins/dynamix/include/CustomMerge.php:16
Stack trace:
#0 /usr/local/emhttp/plugins/dynamix/include/CustomMerge.php(16): array_merge(NULL, Array)
#1 /usr/local/emhttp/plugins/parity.check.tuning/parity.check.tuning.php(333): require_once('/usr/local/emht...')
#2 {main}
  thrown in /usr/local/emhttp/plugins/dynamix/include/CustomMerge.php on line 16

 

I am currently running version 6.12.9 of Unraid and version 2024.02.15 of the Parity Check Tuning plugin.  I did upgrade Unraid from v6.11.5 to v6.12.9 very recently.  I do not capture and retain my syslogs, so I don't know if this was an issue before, or if this is something new.  I perform a parity check every 2 months, and can't remember if I saw these errors last time or not.  Do you have any insight as to why I might be seeing these messages in the syslog?

 

Thank you for your time.

Link to comment

@jmt380  Thanks for reporting this.   I will have to see if I can recreate the problem on 6.12.9 and/or 6.12.10.   I must admit I have not gotten around to explicitly tested against those releases thinking nothing in the Release Notes looked like it would break the plugin - but it looks like that might have been optimistic 😒.   The fact it occurs every 7 minutes tells me it is the monitor task the plugin runs while a check is in progress.  The CustomMerge file mentioned is a built-in Unraid one that I have made use of and it is possible something in it has changed that I need to take account of (or write a replacement for it so I no longer need it).

Link to comment

@jmt380 So far I have not been able to replicate your issue when running a test on 6.12.9.   Just in case it is something specific to the way you have your array setup perhaps you could let me have a screenshot of your Main tab so I can try and set up my test environment to mirror that as closely s possible.   Alternatively a copy of your diagnostics would allow me to extract the needed information from there.

Link to comment

I DM'd you my diagnostics.

 

Looking into this further on my end.  The error log seems to indicate an issue at line 16 of the CustomMerge.php script.  Line's 15 and 16 of that script are:

 

$smartALL = '/boot/config/smart-all.cfg';
if (file_exists($smartALL)) $var = array_merge($var, parse_ini_file($smartALL));

 

My flashdrive does contain the file smart-all.cfg.  It looks like the reason that file exists on my flashdrive is because I had enabled notifications for attribute 188 under Global Smart Settings...I'm not really sure why I did that, or if possibly that was the default way back when I originally installed Unraid.  Regardless, it is my understanding that attribute 188 is now NOT enabled by default in Unraid.  I unchecked the box for attribute 188, and now my /boot/config/smart-all.cfg is blank.

I am guessing this has likely solved my issue.  I will perform a manual parity check over the next day or two and report back.

Link to comment

Thanks for that feedback.

 

Given that extra information I was able to recreate the issue and will put a fix into the next release of the plugin.  I need to initialise a variable that the CustomMerge script expects to already have been loaded before it is called.   The error will occur anytime you make a change under Settings->Disk Settings away from the defaults.

  • Like 1
Link to comment

Hi,

I've installed the plugin via ssh, and when I call 'status' I get the following:

Quote

 parity.check status
Status:  Manual Correcting Parity-Check  (0.1% completed)

When I run one of the parity status scripts available in this post:

I get the correct status:

Quote

Status:   STARTED
Progress: 14727 GB of 18000 GB (81.8%)
Speed:    144.1 MB/sec
Finish:   6h 18m

And here are the stats from var.ini:

Quote

mdColor="green-on"
mdNumDisks="12"
mdNumDisabled="0"
mdNumInvalid="0"
mdNumMissing="0"
mdNumNew="0"
mdNumErased="0"
mdResync="17578328012"
mdResyncCorr="1"
mdResyncPos="15530936"
mdResyncDb="7841188"
mdResyncDt="32"
mdResyncAction="check P Q"
mdResyncSize="17578328012"
mdState="STARTED"
mdVersion="2.9.27"

Any idea why the plugin shows the 0.1%? It's stuck at 0.1% for hours.

Thanks

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.