From: Sebastian B. <boe...@he...> - 2017-08-09 09:19:57
|
Thanks a lot Demian! Am 08.08.2017 um 17:25 schrieb Demian Katz: > If you put the same debugging in place on your development server, I assume you are seeing the correct config in the same place, correct? Are there any significant differences between your production and development environments, like different operating systems, PHP versions, etc.? > Yes, if I put the same debugging in my local system the configuration appears. And yes, there are differences between my local machine and the server. My local system is a Laptop (macOS 10.12.6 and php 7.0.20). The server runs with SuSE Linux Enterprise 12 using php 7.0.7. Today we will try to install the system of another linux workstation, in order to check if the error appears here again. > If you change your debugging to try to load a different configuration, like ->get('config') instead of ->get('EDS'), does that load correctly, or is the config loader pulling empty arrays for everything at this point in time? Do you have any customizations in a local module, and if so, does temporarily disabling them make any difference? Yes, we use a custom module with a lot of adaptions and a custom theme, too. I tried to disable the module (I just removed the line "SetEnv VUFIND_LOCAL_MODULES Hebis" from the apache configuration and have restarted apache) and I changed the template to bootstrap3. Without success. Same error with same exceptions. I also tried to change ->get('EDS') to ->get('config'), latter works fine and the content of the configuration array appears. I've no idea what's going wrong here :( Sebastian > > I hope that trying to answer all those questions might lead to a useful clue or two... please let me know one way or another! > > - Demian > > -----Original Message----- > From: Sebastian Böttger [mailto:boe...@he...] > Sent: Tuesday, August 08, 2017 11:11 AM > To: Demian Katz; vuf...@li... > Subject: Re: [VuFind-Tech] Session trouble using Ebsco's EDS – An abstract factory could not create an instance of eds(alias: EDS) > > Demian, > > thank you for your support! > > Am 08.08.2017 um 15:15 schrieb Demian Katz: >> That's very weird. > > Yes it is! > > Does the behavior change if you remove your $VUFIND_LOCAL_DIR/config/vufind/EDS.ini file and let the default from $VUFIND_HOME/config/vufind/EDS.ini load instead? (Obviously that won't work correctly, but I'm trying to determine whether or not some subtle syntax error is preventing your local EDS.ini from parsing correctly -- for example, a special character in a credential that needs to be put inside double quotes, or something more subtle like a UTF-8 BOM at the top of the file. > > I just tried both, removing the local one and creating a new local EDS.ini by copying the current EDS.ini from Github. Both without success. > > If reverting to the default config causes something to load, then at least you know that your problem resides in your local .ini file, and you can add back your settings one by one to see which is causing the issue). On the other hand, if removing the local config file makes no difference, let me know and I'll see if I can come up with another theory. > > Unfortunately, that doesn't seems to be the reason. > > Sebastian > >> >> thanks, >> Demian >> >> -----Original Message----- >> From: Sebastian Böttger [mailto:boe...@he...] >> Sent: Tuesday, August 08, 2017 9:03 AM >> To: Demian Katz; vuf...@li... >> Subject: Re: [VuFind-Tech] Session trouble using Ebsco's EDS – An >> abstract factory could not create an instance of eds(alias: EDS) >> >> Hello Demian! >> >> Am 08.08.2017 um 14:41 schrieb Demian Katz: >>> Sebastian, >>> >>> That is very strange indeed. Loading the EDS configuration is one of the first actions of the factory that builds the EDS service: >>> >> >> That's what I just did. >> >> I added the following lines to EdsBackendFactory on line 91/92: >> >> echo get_class($this->edsConfig) . "\n"; echo "<pre>"; >> print_r($this->edsConfig->toArray()); >> echo "</pre>"; >> die; >> >> (the "die;" at the end prevents fatal errors like memory exhausted) >> >> The result: >> >> Zend\Config\Config >> Array >> ( >> ) >> >> I guess in the ServiceManager and/or in the AbstractPluginFactory of ZF2 something goes wrong... >> >> >> >>> >>> I'm not sure how that object could even come into existence within the code without the configuration being loaded. >>> >>> Perhaps it is worth putting some debug output into this factory to double-check that it is getting called, and that the correct configuration is being loaded here. >>> >>> Is there any chance that you have something unusual installed on the production box, like some kind of PHP accelerator, that might be short-circuiting something? >>> >>> Let me know if you need more help troubleshooting! >>> >>> - Demian >>> >>> -----Original Message----- >>> From: Sebastian Böttger [mailto:boe...@he...] >>> Sent: Tuesday, August 08, 2017 5:50 AM >>> To: Demian Katz; vuf...@li... >>> Subject: Re: [VuFind-Tech] Session trouble using Ebsco's EDS – An >>> abstract factory could not create an instance of eds(alias: EDS) >>> >>> Hello Demian! >>> >>> Thank you for your answer. Meanwhile I thought the error was fixed. But that wasn't the case (unfortunately). >>> >>> A closer look into the source code has revealed that the origin for that error is a wrong (or rather non-existing) EDS configuration. >>> >>> Since the error does not appear on my local machine (where I can use XDebug), I've tried to debug using outputs and log files (quick & dirty). >>> >>> However, the EDS.ini exists and I've tried to find out why the EDS >>> configuration doesn't exist. Therefore I added the following line to >>> VuFind\Config\PluginFactory::loadConfigFile at line 83 >>> >>> echo "$fullpath\n"; >>> >>> With the following result: >>> >>> /srv/www/hds/local-ubffm/config/vufind/config.ini >>> /srv/www/hds/local-ubffm/config/vufind/DAIA.ini >>> /srv/www/hds/local-ubffm/config/vufind/searches.ini >>> /srv/www/hds/local-ubffm/config/vufind/facets.ini >>> /srv/www/hds/config/vufind/RecordCache.ini >>> >>> As you can see, the EDS.ini is missing in this list. That indicates, the EDS.ini will not be loaded (nowhere). >>> >>> And of course, for the catalog tab there is no need for the EDS configuration. A closer look at the stacktrace makes clear where the EDS configurations are needed. >>>> #32 >>> /srv/www/hds/module/VuFind/src/VuFind/View/Helper/Root/SearchTabs.php(262): >>> Zend\ServiceManager\AbstractPluginManager->get('EDS') >>>> >>>> #33 >>> /srv/www/hds/module/VuFind/src/VuFind/View/Helper/Root/SearchTabs.php(129): >>> VuFind\View\Helper\Root\SearchTabs->remapBasicSearch(Object(VuFind\Se >>> a >>> rch\Solr\Options), >>> 'EDS', 'Darwin', 'AllFields', Array) >>>> >>>> #34 /srv/www/hds/themes/hebisbs3/templates/search/searchTabs.phtml(6): >>> VuFind\View\Helper\Root\SearchTabs->getTabConfig('Solr', 'Darwin', >>> 'AllFields') >>> >>> SearchTabs::remapBasicSearch tries to map the search options from the >>> solr search to eds search in order to generate a valid vufind link. >>> To do that, EDS will be initialized and somewhere there something >>> goes wrong... It's awful (and pretty hard) to debug without a >>> debugger, so I couldn't determine what happens exactly yet. I hope >>> you (or someone >>> else) has further ideas to help me. >>> >>> Thank you in advanced. >>> Sebastian >>> >>> Am 02.08.2017 um 14:33 schrieb Demian Katz: >>>> Sebastian, >>>> >>>> >>>> >>>> The root cause appears to be that the EDS code is trying to >>>> automatically establish a session, and the API call is failing. I’m >>>> not sure why it would fail in this context and not a different one. >>>> >>>> >>>> >>>> Unfortunately, I didn’t write the EDS code and am not entirely >>>> familiar with the subtleties of how sessions work… but you might >>>> find it helpful to start debugging here: >>>> >>>> >>>> >>>> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit >>>> h >>>> u >>>> b.com%2Fvufind-org%2Fvufind%2Fblob%2Fmaster%2Fmodule%2FVuFindSearch% >>>> 2 >>>> F >>>> src%2FVuFindSearch%2FBackend%2FEDS%2FZend2.php%23L143&data=02%7C01%7 >>>> C >>>> d >>>> emian.katz%40villanova.edu%7C23c2984579c64592f31808d4de42e375%7C765a >>>> 8 >>>> d >>>> e5cf9444f09cafae5bf8cfa366%7C0%7C0%7C636377826257349020&sdata=d00iel >>>> b >>>> z >>>> xNTKCGspaRp0boBxrEPZvXubvsuKjddvk0s%3D&reserved=0 >>>> >>>> >>>> >>>> This is where the exception is getting thrown that’s triggering the >>>> whole stack of problems. >>>> >>>> >>>> >>>> This is the function call that’s forming the API call that’s leading >>>> to the exception: >>>> >>>> >>>> >>>> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit >>>> h >>>> u >>>> b.com%2Fvufind-org%2Fvufind%2Fblob%2Fmaster%2Fmodule%2FVuFindSearch% >>>> 2 >>>> F >>>> src%2FVuFindSearch%2FBackend%2FEDS%2FBase.php%23L144&data=02%7C01%7C >>>> d >>>> e >>>> mian.katz%40villanova.edu%7C23c2984579c64592f31808d4de42e375%7C765a8 >>>> d >>>> e >>>> 5cf9444f09cafae5bf8cfa366%7C0%7C0%7C636377826257349020&sdata=YvcjnF4 >>>> D >>>> i >>>> ihD2E%2FBv4e%2FHDpAJTTtejy%2BpCiggshkkZ8%3D&reserved=0 >>>> >>>> >>>> >>>> Perhaps by comparing the createSession parameters that are causing >>>> the problem and the createSession parameters that work correctly in >>>> other contexts, you will discover a clue to the root cause. >>>> >>>> >>>> >>>> Please feel free to share your findings for further analysis if you >>>> need additional assistance! >>>> >>>> >>>> >>>> - Demian >>>> >>>> >>>> >>>> *From:*Sebastian Böttger [mailto:boe...@he...] >>>> *Sent:* Wednesday, August 02, 2017 5:47 AM >>>> *To:* vuf...@li... >>>> *Subject:* [VuFind-Tech] Session trouble using Ebsco's EDS – An >>>> abstract factory could not create an instance of eds(alias: EDS) >>>> >>>> >>>> >>>> Hello all! >>>> >>>> >>>> >>>> I’m running in a very strange error and I have no idea what’s >>>> causing it, so I hope someone of you can help me. >>>> >>>> >>>> >>>> If the EDS service is activated, every search request in the catalog >>>> tab fails and the attached exceptions are thrown, until I start a >>>> search request on EDS tab. If I start a search request for articles >>>> in EDS tab, everything works fine. Afterwards, if I switch to the >>>> catalog tab, the catalog tab works suddenly fine (until session ends). >>>> >>>> >>>> >>>> This behaviour is just observable on our servers, on my local >>>> machine – a development instance with the same source and same >>>> configuration – it works as expected. The stack traces of the exceptions is attached. >>>> >>>> >>>> >>>> VuFind version 3.1.3 >>>> >>>> >>>> >>>> In order to reconstruct this, you can do the following: >>>> >>>> 1. Send a search request in the catalog tab: >>>> => exception throws. >>>> 2. Send a search request to EDS tab: => >>>> EDS result list appears >>>> 3. Send a search request in the catalog tab again: => >>>> catalog result list appears >>>> >>>> >>>> >>>> I'm thankful for every help! >>>> >>>> >>>> >>>> -- >>>> Sebastian Böttger >>>> >>>> HeBIS-Verbundzentrale >>>> >>>> Vermittlungs- und Recherchelösungen >>>> Goethe-Universität Frankfurt am Main Senckenberganlage 33 >>>> 60325 Frankfurt am Main >>>> Tel: +49-(0)69-798-28994 >> >> -- >> Sebastian Böttger >> >> HeBIS-Verbundzentrale / HeBIS-IT >> Goethe-Universität Frankfurt am Main >> Senckenberganlage 33 >> 60325 Frankfurt am Main >> Tel: +49-(0)69-798-28994 >> https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.he >> bis.de&data=02%7C01%7Cdemian.katz%40villanova.edu%7C5331e01f93f1478635 >> 6008d4de5dcc57%7C765a8de5cf9444f09cafae5bf8cfa366%7C0%7C0%7C6363779418 >> 37936135&sdata=Hxs7EwBbPU3bFJAAYK3jQkBks46zHZopqOEF9lwVp8Y%3D&reserved >> =0 >> >> PGP/GPG: >> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpgp.m >> it.edu%2Fpks%2Flookup%3Fop%3Dget%26search%3D0x255191F66AFFCBEA&data=02 >> %7C01%7Cdemian.katz%40villanova.edu%7C5331e01f93f14786356008d4de5dcc57 >> %7C765a8de5cf9444f09cafae5bf8cfa366%7C0%7C0%7C636377941837936135&sdata >> =V9pk7FvbJ2s84e5zamaOhz9cGkr5SWtv%2BhHbjavW0tY%3D&reserved=0 >> > > -- > Sebastian Böttger > > HeBIS-Verbundzentrale / HeBIS-IT > Goethe-Universität Frankfurt am Main > Senckenberganlage 33 > 60325 Frankfurt am Main > Tel: +49-(0)69-798-28994 > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.hebis.de&data=02%7C01%7Cdemian.katz%40villanova.edu%7C40241fbb74f14a2d438b08d4de6fa2a2%7C765a8de5cf9444f09cafae5bf8cfa366%7C0%7C0%7C636378018455272114&sdata=PmwFX4swyYmY1JwKNvHxqjFdcJT19inwzrfArBgr%2BU0%3D&reserved=0 > > PGP/GPG: https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpgp.mit.edu%2Fpks%2Flookup%3Fop%3Dget%26search%3D0x255191F66AFFCBEA&data=02%7C01%7Cdemian.katz%40villanova.edu%7C40241fbb74f14a2d438b08d4de6fa2a2%7C765a8de5cf9444f09cafae5bf8cfa366%7C0%7C0%7C636378018455272114&sdata=KpDXYP1%2FDsgEZSffvcnSkzuuoxK4smTXiKNHKjCzLfI%3D&reserved=0 > |