2 small issues with 6.12.rc-2


Go to solution Solved by Squid,

Recommended Posts

I switched to the beta some weeks ago and most features are doing fine.

 

I miss my appdata backup plugin, I hope it comes back soon again..

 

But there are 2 small things I was not able to track down and solve.

 

1) Syslog filling up with:

...

Apr 10 07:11:01 F crond[1705]: exit status 255 from user root /usr/local/emhttp/plugins/dynamix/scripts/monitor &> /dev/null
Apr 10 07:12:01 F crond[1705]: exit status 255 from user root /usr/local/emhttp/plugins/dynamix/scripts/monitor &> /dev/null
Apr 10 07:13:01 F crond[1705]: exit status 255 from user root /usr/local/emhttp/plugins/dynamix/scripts/monitor &> /dev/null
Apr 10 07:14:01 F crond[1705]: exit status 255 from user root /usr/local/emhttp/plugins/dynamix/scripts/monitor &> /dev/null
Apr 10 07:15:01 F crond[1705]: exit status 255 from user root /usr/local/emhttp/plugins/dynamix/scripts/monitor &> /dev/null
Apr 10 07:16:01 F crond[1705]: exit status 255 from user root /usr/local/emhttp/plugins/dynamix/scripts/monitor &> /dev/null

...
Happens every minute, drives me crazy

(I have checked that script, cannot find any exit(255) in there 😞

 

2) Community Apps stuck

For some unknown reason, the CA plugin tells me, the german language pack was "pending".

grafik.png.5f75f5cd04e5bd0b3affa8097517df22.png

 

No Idea what this means, its stuck. I was able to delete the pack from the "OS language" page, no change. I reinstalled it from the "OS language" page, as you can see, still "pending" (and no other action is possible).

How can I "unlock" this plugin  for CA???

 

Link to comment

What other plugins did you try to install?

 

"Pending" comes from the underlying plugin system and means that another plugin has not finished installing (or there's a bug in the system).  

 

To clear it out, as you won't be able to handle any plugin related operation you need to either reboot or 

rm /tmp/plugins/pluginPending/*

 

  • Thanks 1
Link to comment
2 hours ago, Squid said:

To clear it out, as you won't be able to handle any plugin related operation you need to either reboot or 

Tnx! that rm did the job, it now shows as installed as it should. Still no idea how and why it get stuck at "pending", I remember there was an update for it last week, looks like it never made it thru completely.

 

Anyway, now only that annoying "one status 255 msg per minute in syslog" remains.

 

And "my servers" plugin does not work too anymore, but that is nothing i need. I guess, I will deinstall it again soon. Or I wait for the next rc and hope it will function again some day.

 

 

Link to comment

Update: today there was an Update to the language pack again, and, guess what? its now stuck and pending again (yeah, now I know what to delete, but there is something wrong with the pack and somebody should investigate).


 

Install Plugin Applications

language: installing language pack Executing hook script: pre_plugin_checks language: XML file doesn't exist or xml parse error Executing hook script: post_plugin_checks

 

This was shown onscreen.

 

Nothing special in syslog (besides the ever nagging status 255 msg, nobody has replied on them for now)

Apr 14 06:57:26 F webGUI: Successful login user root from 192.168.0.26
Apr 14 06:58:01 F crond[1727]: exit status 255 from user root /usr/local/emhttp/plugins/dynamix/scripts/monitor &> /dev/null
Apr 14 06:59:01 F crond[1727]: exit status 255 from user root /usr/local/emhttp/plugins/dynamix/scripts/monitor &> /dev/null
Apr 14 07:00:01 F crond[1727]: exit status 255 from user root /usr/local/emhttp/plugins/dynamix/scripts/monitor &> /dev/null
Apr 14 07:01:01 F crond[1727]: exit status 255 from user root /usr/local/emhttp/plugins/dynamix/scripts/monitor &> /dev/null
Apr 14 07:02:01 F crond[1727]: exit status 255 from user root /usr/local/emhttp/plugins/dynamix/scripts/monitor &> /dev/null
Apr 14 07:03:01 F crond[1727]: exit status 255 from user root /usr/local/emhttp/plugins/dynamix/scripts/monitor &> /dev/null

 

Link to comment

update 2:

I used phpdbg to find the problem with the monitor script.

it tells me:

root@F:~# phpdbg /usr/local/emhttp/plugins/dynamix/scripts/monitor
[Welcome to phpdbg, the interactive PHP debugger, v8.2.4]
To get help using phpdbg type "help" and press enter
[Please report bugs to <http://bugs.php.net/report.php>]
[Successful compilation of /usr/local/emhttp/plugins/dynamix/scripts/monitor]
prompt> run
[Uncaught Error in /usr/local/emhttp/plugins/dynamix/scripts/monitor on line 4: Undefined constant "i"]
>00004: if ( ! ((date(i) * date(H) * 60 + date(i)) % $sync_interval_minutes) && file_exists("/var/lib/docker/containers")) {
 00005:   exec("mkdir /var/lib/docker_bind");
 00006:   exec("mount --bind /var/lib/docker /var/lib/docker_bind");

so, what is "i" and why I do not have it???

 

(not knowing anything about the date function of PHP, I just added double quotes around "i" and "H", the script now finishes normally... but still I do not understand what the formula should be good for... ??? )

((just an educated guess because date() wants a string argument...))

 

Edited by MAM59
Link to comment
1 hour ago, bonienl said:

You are running some modified version of the monitor script.

 

Original script doesn’t have this code.

Yeah I also thought this would be something "unnatural".

 

The bad news are, I did not modify it, so "somebody" or "something" must have done it. The errors began after the update to 6.12.rc-2 and the only change during the update was the deletion of CA-appdata-backup.

 

Maybe there are more changes in there from other plugins? Where can I find the "original version", so that I can do a line by line compare???

 

Link to comment

It is more likely that a plugin modified the monitor script, which I find disturbing.

The monitor script is an essential core part of Unraid, this should not get modified in the first place and introduces any potential problems when core updates are done, like in 6.12.

 

I just updated the German language pack on my system without any issues and it appears to run fine.

Btw this system has all possible language packs installed for testing purposes.

 

Link to comment
37 minutes ago, bonienl said:

It is more likely that a plugin modified the monitor script, which I find disturbing.

 

I *think* it's the script floating around here that sets docker to log into /tmp instead of the image.  Alternatively it would be appdata backup v3 which didn't clean up the system when uninstalled without a reboot.  I'll look into this further.

Link to comment
22 minutes ago, Squid said:

*think* it's the script floating around here that sets docker to log into /tmp instead of the image.  Alternatively it would be appdata backup v3 which didn't clean up the system when uninstalled without a reboot.  I'll look into this further.

Now that you say it... yeah both can be true here. I once added that log-to-tmp code to make the usb stick last longer. And I used appdata backup which had not any chance to clean up, because the update declared it deprecated and did not run the uninstall script I guess.

1 hour ago, bonienl said:

I just updated the German language pack on my system without any issues and it appears to run fine.

It does run fine here too, it is just that the App Gui thinks, the installation went wrong and keeps the status "pending". But it has been installed and it works ok (I think, hard to check, there are still a lot of translations missing)

 

Link to comment
5 minutes ago, Squid said:

You've done this to modify the monitor script

Yeah, guilty on 1st sight :-)))

But maybe we should inform the author that his code stopped working?

 

And yes2: as he only modified the "go" script I was not aware that this "monitor" was changed too...

 

 

Link to comment

found the bug in the Go script:

sed -i '/^<?PHP$/a \
$sync_interval_minutes=60;\
if ( ! ((date('i') * date('H') * 60 + date('i')) % $sync_interval_minutes) && file_exists("/var/lib/docker/containers")) {\
  exec("mkdir /var/lib/docker_bind");\
  exec("mount --bind /var/lib/docker /var/lib/docker_bind");\
  exec("rsync -aH --delete /var/lib/docker/containers/ /var/lib/docker_bind/containers");\
  exec("umount /var/lib/docker_bind");\
  exec("rmdir /var/lib/docker_bind");\
}' /usr/local/emhttp/plugins/dynamix/scripts/monitor

the sed starts with ' so any ' within the code are ignored.

have to change them to " to get the job done again..

(still no idea why it hits just now and ran before ?!?!?)

 

aah yes.. somebody asked for the diagnostics, here it is.

 

 

f-diagnostics-20230414-1718.zip

Edited by MAM59
Link to comment
Just now, bonienl said:

Still don’t like it that people change core files of the OS.

It can lead to all kinds of unwanted site effects, like in this case.

I agree, but I was not really aware what it did. I just followed the orders here from the forum (and from a guy with good reputation).

 

Link to comment

Yeah, I maybe a bit too correct, but:

 

* the language pack update still gets stuck with "pending" but...

 

during the last few updates, it happened again, but today I have tried a new "trick" and it seems to work.

 

Usually I use the "Action Center" from the "App" window, "select all" and let them update.

Doing this will 100% get the German language pack stuck with "pending" state.

 

But I remebered last week when there was an update for the lang pack only, this worked flawlessly.

 

So today, I selected "all but the lang pack", did the updates and afterwards selected the lang pack and updated it alone.

And, guess what? it worked.

 

So I think somebody should check what the difference is between a mass update and a single one...

 

Link to comment
  • 2 months later...
9 minutes ago, garion said:

so, changing ' per " solve the problem?

You have to look carefully.

sed starts with a ' and from this line down to

"}' /usr/local/emhttp/plugins/dynamix/scripts/monitor"

every occurance of ' has to be changed to ".

if ( ! ((date('i') * date('H') * 60 + date('i'))

should become

 if ( ! ((date("i") * date("H") * 60 + date("i"))

 

This is because the shell reads a multiline string beginning with the terminator (either ' or " ) up to the next occurance of the same terminator. So if we start with ' we have to end with ' too. (The reason for having two terminator chars that do the same is that you start and end with one and use the other one inside the string treated as a normal character there)

 

Link to comment
  • 5 months later...
  • 2 months later...

I am also having this issue.  Every minute, my log gets this annoying message.

 

Feb 21 01:17:01 MyServer crond[1597]: exit status 255 from user root /usr/local/emhttp/plugins/dynamix/scripts/monitor &> /dev/null

 

When I look at the file "/usr/local/emhttp/plugins/dynamix/scripts/monitor", I can see this code on line 4.

 

if ( ! ((date(i) * date(H) * 60 + date(i)) % $sync_interval_minutes) && file_exists("/var/lib/docker/containers")) {


This is similar to but not quite the same as what's being discussed in the thread.  The variables on my system have no single or double quotes.

 

I never modified this script myself and honestly have no idea what it even does.  I've read the thread a couple of times but it's not even clear to me how this got corrupted on the OP's machine, or if my issue is something totally unrelated and the script is failing for a different reason.

 

Not sure how to proceed.  Any help on this?

Edited by singularity098
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.