MAM59 Posted April 10, 2023 Share Posted April 10, 2023 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". 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??? Quote Link to comment
Squid Posted April 10, 2023 Share Posted April 10, 2023 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/* 1 Quote Link to comment
MAM59 Posted April 10, 2023 Author Share Posted April 10, 2023 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. Quote Link to comment
MAM59 Posted April 14, 2023 Author Share Posted April 14, 2023 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 Quote Link to comment
MAM59 Posted April 14, 2023 Author Share Posted April 14, 2023 (edited) 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 April 14, 2023 by MAM59 Quote Link to comment
bonienl Posted April 14, 2023 Share Posted April 14, 2023 You are running some modified version of the monitor script. Original script doesn’t have this code. Quote Link to comment
MAM59 Posted April 14, 2023 Author Share Posted April 14, 2023 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??? Quote Link to comment
bonienl Posted April 14, 2023 Share Posted April 14, 2023 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. Quote Link to comment
Squid Posted April 14, 2023 Share Posted April 14, 2023 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. Quote Link to comment
Squid Posted April 14, 2023 Share Posted April 14, 2023 1 hour ago, MAM59 said: 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. Can you post your diagnostics so I can see what's going on.... Quote Link to comment
Squid Posted April 14, 2023 Share Posted April 14, 2023 You've done this to modify the monitor script Quote Link to comment
MAM59 Posted April 14, 2023 Author Share Posted April 14, 2023 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) Quote Link to comment
MAM59 Posted April 14, 2023 Author Share Posted April 14, 2023 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... Quote Link to comment
MAM59 Posted April 14, 2023 Author Share Posted April 14, 2023 (edited) 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 April 14, 2023 by MAM59 Quote Link to comment
bonienl Posted April 14, 2023 Share Posted April 14, 2023 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. Quote Link to comment
MAM59 Posted April 14, 2023 Author Share Posted April 14, 2023 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). Quote Link to comment
bonienl Posted April 14, 2023 Share Posted April 14, 2023 The better approach here is to use the "user scripts" plugin and define a custom schedule to let it run. Or alternatively create a dedicated plugin which adds new background task. 1 Quote Link to comment
Solution Squid Posted April 14, 2023 Solution Share Posted April 14, 2023 2 hours ago, MAM59 said: it is just that the App Gui thinks rm /tmp/plugins/pluginPending/* Quote Link to comment
MAM59 Posted April 19, 2023 Author Share Posted April 19, 2023 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... Quote Link to comment
MAM59 Posted July 2, 2023 Author Share Posted July 2, 2023 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) Quote Link to comment
ramius87 Posted December 5, 2023 Share Posted December 5, 2023 I am having this same issue exactly. Quote Link to comment
singularity098 Posted March 1 Share Posted March 1 (edited) 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 March 1 by singularity098 Quote Link to comment
ljm42 Posted March 1 Share Posted March 1 1 hour ago, singularity098 said: Not sure how to proceed. Please upload your diagnostics.zip file (from Tools -> Diagnostics) Quote Link to comment
singularity098 Posted May 13 Share Posted May 13 I was able to fix it on my system. Even though on my system, the script "/usr/local/emhttp/plugins/dynamix/scripts/monitor" does NOT have single or double quotes as shared by others: if ( ! ((date(i) * date(H) * 60 + date(i)) % $sync_interval_minutes) && file_exists("/var/lib/docker/containers")) { I changed it to adding double quotes around those variables anyway. It fixed the issue: if ( ! ((date("i") * date("H") * 60 + date("i")) % $sync_interval_minutes) && file_exists("/var/lib/docker/containers")) { No more errors in my logs. Quote Link to comment
ljm42 Posted May 13 Share Posted May 13 4 hours ago, singularity098 said: I was able to fix it on my system. Even though on my system, the script "/usr/local/emhttp/plugins/dynamix/scripts/monitor" does NOT have single or double quotes as shared by others: if ( ! ((date(i) * date(H) * 60 + date(i)) % $sync_interval_minutes) && file_exists("/var/lib/docker/containers")) { I changed it to adding double quotes around those variables anyway. It fixed the issue: if ( ! ((date("i") * date("H") * 60 + date("i")) % $sync_interval_minutes) && file_exists("/var/lib/docker/containers")) { No more errors in my logs. This is not stock Unraid code, but was due to a modification you added to your go script right? Please make that clear when requesting help, and upload your diagnostics so people can see the code you added to your go script. Overall though, I'd recommend discussing this in the thread where you got the code, perhaps there has been an update. Or you can delete all the mods to the go script and return to stock Unraid. Quote Link to comment
Recommended Posts
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.