Thread "Experiencing error after upgrade to Ilias 5.1.4"

Tabs

  • Deleted
    Deleted | 7. Apr 2016, 10:44
    Edited on: 12. Apr 2016, 11:08 - by Deleted
    [SOLVED] Experiencing error after upgrade to Ilias 5.1.4

    Hi,

    When we upgrade form Ilias 5.0.1 to Ilias 5.1.4 we experience an error regarding locating (?) a plug-in during login:
    ERROR: Can't find target class ilobjcrtgui for node 5b:l0 (ilrepositorygui). 

    The error is thrown in getNodeIdForTargetClass() from class.ilCtrl.php.

    The plug-in, which is a in-house developed one, worked flawlessly in Ilias 5.0.1. I have checked the plug-in development documentation but that lacks the latest 5.1.x changes (an extra abstract function must be implemented but was nowhere mentioned). So I used Fred Neumans LTI plug-in as a template to check for any missing stuff but this is a tedious and obviously error prone approach.

    The puzzling part is that when I install the plug-in in a fresh Ilias 5.1.4 the plug-in works without a problem.

    When I remove the plug-in files I can login without problems. When I put the files back the error appears again.

    At the moment I am at a loss here. Does anyone have any tips or pointers I should follow in finding why this particular error occurs?

    Regards,
    Rick

  • fschmid
    fschmid | fschmid | 7. Apr 2016, 10:48
    Experiencing error after upgrade to Ilias 5.1.4

    Hi Rick

    Long shot without knowing any details from your plugins and installation: Try to perform a structure reload in /setup/setup.php in the tab "Tools" of your client.

    Best regards

    Fabian

  • Deleted
    Deleted | 7. Apr 2016, 11:02
    Edited on: 7. Apr 2016, 11:58 - by Deleted
    Experiencing error after upgrade to Ilias 5.1.4

    Hi Fabian,

    I did that and then the error slightly changes to (note the node):

    ERROR: Can't find target class ilobjcrtgui for node 2t:9z (ilrepositorygui).

    So, apparently something happened.
    Without having any knowledge about the 3rd option in the tools tab: does it help if I change the tree model? 

    The plug-in is a simple one: our customers can change the date format of the certificate dates to any locale they want. Just one property tab and some standard tabs from the example plugin :-).

    Regards,
    Rick 

    Update:
    I switched on DEV_MODE and looked at the stack backtrace of the exception. I commented out the exception code in the method and logged in. No error, phew.
    The plug-in existed on the repository and I clicked on it and Whoops showed me that there was an error handling the ref_id. So I removed the plug-in from the repository and uncommented the exception code. I could then log in without a problem. The plug-in is activated but has no ref_id whatsoever.

    I will now try to add the plug-in back to the repository and observe what happens then. 

    Update 2:

    No cigar, the same error occurs. The moment the plug-in has a ref_id the show is over.

    Upadte 3:

    To be 100% sure I installed the plug-in in a fresh 5.1.4 and it installed and worked without a problem.

  • fschmid
    fschmid | fschmid | 7. Apr 2016, 11:58
    Experiencing error after upgrade to Ilias 5.1.4
    is it possible to send me or uploas the zipped plugin? i'll have a look at it...
  • Deleted
    Deleted | 7. Apr 2016, 12:11
    Experiencing error after upgrade to Ilias 5.1.4

    Hello Fabian,

    I sent you a message with the attached plug-in. I really appreciate you want to take a look at it.

    Regards,
    Rick 

  • fschmid
    fschmid | fschmid | 7. Apr 2016, 13:11
    Experiencing error after upgrade to Ilias 5.1.4
    Unfortunately I didn't get the attachment. Can you send me an e-mail directly (not from ILIAS) at fs@studer-raimann.ch? Thanks
  • Deleted
    Deleted | 7. Apr 2016, 14:17
    Experiencing error after upgrade to Ilias 5.1.4

    Hi Rick,

    This is a long shot, but that error sometimes happens to us when our APC cache gets out of whack, do you have cacheing enabled on that portal?  The error is:

    ERROR: Can't find target class <someclass> for node <somenode> (<somereference>).

    Regards,

    Adam


  • fschmid
    fschmid | fschmid | 7. Apr 2016, 16:06
    Experiencing error after upgrade to Ilias 5.1.4

    Adam's right, the control-structure is stores in the APC cache. this cache is flushed when updateing ILIAS or when installinmg plugins. But there are situations when the cache isn't correctly flushed, especially when using mutiple webservers behind a webserver.

    you can disable cache in setup or reload apache on every webserver. when using a multi-server-environment you could use a Memcahced-Server in ILIAS5.1 which supports mutli-server flush.

  • Deleted
    Deleted | 8. Apr 2016, 09:35
    Edited on: 8. Apr 2016, 13:04 - by Deleted
    Experiencing error after upgrade to Ilias 5.1.4

    Hi Adam, Fabian,

    Thank you both for this suggestion.

    I am not sure we have APC enabled as we use a load balancer and we previously experienced some problems with caching in combination with load balancers. The error happens on our hosting environment as well as our internal test environment. We run Ilias on IIS.

    However, we switched to a new load balancer just a couple of weeks ago on our hosting environment. I will contact our IT department to have a look at that. Our test environment is very basic with just one web server, no load balancer, etc.


     @Fabian: I just sent you an e-mail with the plug-in.

    Regards,
    Rick 

    Update:
    I checked the test environment but there is no apc in the php.ini file. I restarted IIS to flush any caching there might be but the error remains. I also disabled any caching in IIS but that didn't help either.

    Update 2:

    I disabled wincache on our test environment but that also didn't help.

    Update 3:
    I did a complete upgrade from scratch without cache and with a Structure Reload but still that error. 

    Update 4:

    I checked the log file and only fond this:

    [6no9n] [2016-04-08 13:02:00.430593] 0000-514_root.INFO: ilAuthContainerMDB2::loginObserver:115 ilAuthContainerMDB2::loginObserver: auth id = 1
    [6no9n] [2016-04-08 13:02:00.460733] 0000-514_auth.INFO: ilAuthBase::loginObserver: logged in as root, remote:10.100.10.10:8055, server::80
    [6no9n] [2016-04-08 13:02:00.462984] 0000-514_root.INFO: ilSessionControl::debug:193 ilSessionControl::handleLoginEvent --> update sessions type to (2)

     

  • Deleted
    Deleted | 11. Apr 2016, 10:31
    Edited on: 11. Apr 2016, 13:11 - by Deleted
    Experiencing error after upgrade to Ilias 5.1.4

    I have done the following to get it working (working from a upgraded environment):

    1. Remove the plugin from the il_plugin table
    2. Drop the plugin tables
    3. Login as root and Update the plugin (I did not remove the plugin from the customizing directory) 
    4. Update the plugin
    5. Activate the plugin
    6. Add the plugin to the repository
    7. Logout and login again
    8. No errors.

    Of course this is a worst case scenario work around. I hope this sheds some light on the problem or at least create some ideas about it.

    Regards,
    Rick 

     

  • Deleted
    Deleted | 12. Apr 2016, 10:37
    Experiencing error after upgrade to Ilias 5.1.4
    Fabian mailed me with that the plug-in seems to be ok.
    However, he mentioned that there are differences in the capitalisation of folder name.

    Fabian wrote: The Correct Path would be Customizing/global/plugins/Services/Repository/RepositoryObject/Crt

    I have changed it according to the above format. Now when I upgrade I get an error when Applying Hotfixes:

    No plugin record found for 'Services', 'Repository', 'robj', 'Crt'.

    When I change the Crt folder back to crt  (as it is in the il_plugin table) then the HotFixes work without an error. However, when logging in the same error occurs:

    ilCtrlException
    ERROR: Can't find target class ilobjcrtgui for node 5b:l0 (ilrepositorygui).  I tried with and without Reload Structure.

    I managed to get the call backtrace from the screen:

    D:\Application\Ilias\Websites\0000-514\Services\UICore\classes\class.ilCtrl.php, getNodeIdForTargetClass [1667]
    D:\Application\Ilias\Websites\0000-514\Services\UICore\classes\class.ilCtrl.php, getParameterArrayByClass [1621]
    D:\Application\Ilias\Websites\0000-514\Services\UICore\classes\class.ilCtrl.php, getUrlParameters [1474]
    D:\Application\Ilias\Websites\0000-514\Services\Object\classes\class.ilObjectListGUI.php, getLinkTargetByClass [2705]
    D:\Application\Ilias\Websites\0000-514\Services\Object\classes\class.ilObjectListGUI.php, insertTimingsCommand [2835]
    D:\Application\Ilias\Websites\0000-514\Services\Object\classes\class.ilObjectListGUI.php, insertCommands [3672]
    D:\Application\Ilias\Websites\0000-514\Services\Container\classes\class.ilContainerContentGUI.php, getListItemHTML [609]
    D:\Application\Ilias\Websites\0000-514\Services\Container\classes\class.ilContainerByTypeContentGUI.php, renderItem [148]
    D:\Application\Ilias\Websites\0000-514\Services\Container\classes\class.ilContainerByTypeContentGUI.php, renderItemList [102]
    D:\Application\Ilias\Websites\0000-514\Services\Container\classes\class.ilContainerContentGUI.php, getMainContent [191]
    D:\Application\Ilias\Websites\0000-514\Services\Container\classes\class.ilContainerContentGUI.php, getCenterColumnHTML [104]
    D:\Application\Ilias\Websites\0000-514\Services\Container\classes\class.ilContainerGUI.php, setOutput [492]
    D:\Application\Ilias\Websites\0000-514\Modules\RootFolder\classes\class.ilObjRootFolderGUI.php, renderObject [218]
    D:\Application\Ilias\Websites\0000-514\Modules\RootFolder\classes\class.ilObjRootFolderGUI.php, renderObject [198]
    D:\Application\Ilias\Websites\0000-514\Services\UICore\classes\class.ilCtrl.php, executeCommand [188]
    D:\Application\Ilias\Websites\0000-514\Services\Repository\classes\class.ilRepositoryGUI.php, forwardCommand [351]
    D:\Application\Ilias\Websites\0000-514\Services\Repository\classes\class.ilRepositoryGUI.php, show [305]
    D:\Application\Ilias\Websites\0000-514\Services\UICore\classes\class.ilCtrl.php, executeCommand [188]
    D:\Application\Ilias\Websites\0000-514\Services\UICore\classes\class.ilCtrl.php, forwardCommand [150]
    D:\Application\Ilias\Websites\0000-514\ilias.php, callBaseClass [21]

    So, at the moment I can't do anything more to get it to work. I have managed to create an ugly work around but we need to consider our options at what to do next with Ilias 5.1.x.

    Thank you Fabian for your time and effort.

    Regards,
    Rick 

  • mbecker
    mbecker | mbecker | 12. Apr 2016, 10:48
    Experiencing error after upgrade to Ilias 5.1.4

    I don't know if this remark is relevant in this case, I am not following too closely here, but there's a common problem with control structure and plugins.

    To my knowledge (and extended grief at times), the setups' structure reload does not affect routes in plugins.

    To address such a situation, I usually increment the plugins version number and update from the plugin admin which triggers the reloading in a way that takes care of the plugins @ilCtrl-Tags.

  • Deleted
    Deleted | 12. Apr 2016, 11:04
    Edited on: 12. Apr 2016, 11:06 - by Deleted
    [SOLVED, sort of]Experiencing error after upgrade to Ilias 5.1.4

    By George, I think you've got it!

    I increased the plug-in version number and it works after I update the plug-in. 
    Now, I would suggest this knowledge, always increase the version number of the plug-in when upgrading to another Ilias version, to be included in the plug-in development documentation in case some other hapless soul runs into the same problem. 

    Thanks Maximillian.

    Regards,
    Rick 

  • mbecker
    mbecker | mbecker | 12. Apr 2016, 11:29
    [SOLVED, sort of]Experiencing error after upgrade to Ilias 5.1.4

    You're welcome.... And adding this to the guides... you see... the support sales... there's such a _miserable_ lack of SUVs on the parking lot here ;-)

    No, seriously:

    It's not exactly that simple because no one but the plugin maintainer should increment the version number. If you do such as a local change and later receive an update that jumps on the same version, your plugin will not stop working and require the reload. So then you have the issue again, the reload you need so dearly does not take place and you get the nasty ilCtrl-Exceptions.

    In my opinion, there should be either an inclusion of plugins in the setups reload or a possibility to trigger such for all plugins in the plugin admin.

  • Deleted
    Deleted | 12. Apr 2016, 13:36
    [SOLVED, sort of]Experiencing error after upgrade to Ilias 5.1.4

    Over here there is also a lack of SUV's but hey, we're not in it for the money, right? ;-)

    By hapless soul I meant a software developer but you are right. An application/IT manager wouldn't increase version numbers of Ilias plug-ins to get an upgrade working.

    It is the first time I ran into a problem like this, may be I was just lucky but yeah, including plug-ins in a reload would be a welcome addition.
    Our IT department is happy with this work around and we can upgrade to Ilias 5.1.4.

     

  • fschmid
    fschmid | fschmid | 13. Apr 2016, 09:00
    [SOLVED, sort of]Experiencing error after upgrade to Ilias 5.1.4
    Years of Plugin Development somethimes prevent me from seeing the wood for the trees... I not even thought after the point to increase the plugin version since this is some kind of automatism fo me :-) Sorry, and thanks Max Becker for the hint!