Problems with multicast task
-
-
Seems to be a similar error than in my Thread (https://forums.fogproject.org/topic/7414/multicast-not-starting)
array_map(): An error occurred while … …/fogcontroller.class.php
=> php settings? php version? -
This post is deleted! -
This post is deleted! -
This post is deleted! -
@Tom-Elliott
I solved this question in my case, perhaps it may help someone.- FOG 1.3-RC1 on CentOS 7.0.
- Unicast deploy working.
- Even multicast was working.
After a system reboot, MulticastManager didn’t start again:
Sep 4 06:01:28 clonacion FOGMulticastManager: PHP Fatal error: Call to undefined method MulticastManager::getBanner() in /opt/fog/service/FOGMulticastManager/FOGMulticastManager on line 13
It didn’t matter if I added a multicast task: udp-sender process didn’t start because service didn’t start before (you’ll see only one FOGMulticastManager in process list --ps–, it’s the parent which forks periodically one child process (but this one will die at GetBanned method invocation).
If I commented GetBanner() invocation out at /opt/fog/service/FOGMulticastManager/FOGMulticastManager, then it failed at next method call to object MulticastManager.
I found TWO “MulticastManager” class, one of them extends FOGBase (at lib/fog directory) and the other one extends FOGService (at lib/service directory). Only the last one has defined methods like GetBanner(), etc. By any reason, it uses in some cases wrongly the first one (even when it used the second one after installation because it worked before).
So, I renamed MulticastManager class that extends FOGService to MulticastManagerService, and I changed the code to use that. After that, service FOGMulticastService starts with no problems, it works. I did the same thing with rest of services: FOGScheduler,…
I resume (for service MulticastManager: repeat it with other services in /opt/fog/services directory):
-
Edit /opt/fog/service/FOGMulticastManager/FogMulticastManager file: modify line 8 from $ServiceClass = FOGCore::getClass(‘MulticastManage’); to $ServiceClass = FOGCore::getClass(‘MulticastManagerService’);
-
Rename file /var/www/html/fog/lib/service/multicastmanager.class.php to /var/www/html/fog/lib/service/multicastmanagerservice.class.php (/var/www/html/fog is the path to fog web service)
-
Edit /var/www/html/fog/lib/service/multicastmanagerservice.class.php and modify the name of this class (line 2) from “class MulticastManager extends FOGService” to “class MulticastManagerService extends FOGService”
-
This post is deleted! -
@habu there is only one multicast manager class. That is the one supposed to be in lib/service
The one in lib/fog should read multicast sessions, multicast sessions manager, multicast sessions association, and multicast sessions association manager. Of course without the spaces.
-
I wouldn’t advise trying to modify RC1’s code base. I would advise updating to the latest RC.
-
So based on that information, I suspect the copy back original files broke this for you.
Basically copy back works by taking the backup copy and placing back. The installer then copies the new files which simply overwrites same named files.
I think this is where things went funny in your case. Multicast manager used to reside in lib/fog and for modularity I moved Linux service files into lib/service.
What I can try to do, then, is iterate directories and only allow my files over everything else within those folders.
For the time being, would you mind confirming by reinstalling.
Then remove the lib/fog/multicastmanager.class.php, then rerun the installer again
This should fix the issue you were seeing. Or better yet would simply be to remove the /var/www/html/fog and /var/www/fog folders. Remove the backup folders with
rm -rf /home/fog*BACKUP
and rerun the installer.I prefer the latter because it will ensure no unwanted remnants will be present as it can’t create a backup and the original backup of the same name won’t be able to operate either.
Of course if you have custom files in your fog web root, make a backup first.
-
@Tom-Elliott
But it seems to wrongly use the one in lib/fog in some cases (and so I get GetBanner() errors, and, if i comment getBanner() call out in service code, then error happens at next method invocation wait_…). After I changed its name (and its file’s name), Reflection find necessary the right class, no errors, all services started again, and multicast is working.Best regards,
Javier -
@habu what I’m saying is its copying data that should not be there. Modifying core files only works around the issue. What I’m suggest will fix the issue permanently for you.