[horde] EMERG: HORDE-BETA Missing required state object [pid 15927 on line 122 of "/usr/share/git-horde5/framework/ActiveSync/lib/Horde/ActiveSync/Driver/Base.php"]

Simon B simon.buongiorno at gmail.com
Thu Jan 2 14:58:05 UTC 2014


On 31 December 2013 17:09, Michael J Rubinsky <mrubinsk at horde.org> wrote:
>
> Quoting Simon B <simon.buongiorno at gmail.com>:
>
>> On 26 December 2013 19:03, Michael J Rubinsky <mrubinsk at horde.org> wrote:
>>>
>>>
>>> Quoting Simon B <simon.buongiorno at gmail.com>:
>>>
>>>> On 25 December 2013 21:34, Michael J Rubinsky <mrubinsk at horde.org>
>>>> wrote:
>>>>>
>>>>>
>>>>>
>>>>> Quoting Simon B <simon.buongiorno at gmail.com>:
>>>>>
>>>>>> Hi
>>>>>>
>>>>>> Since the last git pull that I did on Sunday I have this in my logs..
>>>>>>
>>>>>> 2013-12-22T06:31:39+00:00 EMERG: HORDE-BETA [horde] Missing required
>>>>>> state object [pid 15927 on line 122 of
>>>>>>
>>>>>>
>>>>>>
>>>>>> "/usr/share/git-horde5/framework/ActiveSync/lib/Horde/ActiveSync/Driver/Base.php"]
>>>>>> 2013-12-22T06:32:19+00:00 EMERG: HORDE-BETA [horde] Missing required
>>>>>> state object [pid 16066 on line 122 of
>>>>>>
>>>>>>
>>>>>>
>>>>>> "/usr/share/git-horde5/framework/ActiveSync/lib/Horde/ActiveSync/Driver/Base.php"]
>>>>>> 2013-12-22T06:34:08+00:00 EMERG: HORDE-BETA [horde] Missing required
>>>>>> state object [pid 16004 on line 122 of
>>>>>>
>>>>>>
>>>>>>
>>>>>> "/usr/share/git-horde5/framework/ActiveSync/lib/Horde/ActiveSync/Driver/Base.php"]
>>>>>> 2013-12-22T06:34:58+00:00 EMERG: HORDE-BETA [horde] Missing required
>>>>>> state object [pid 16056 on line 122 of
>>>>>>
>>>>>>
>>>>>>
>>>>>> "/usr/share/git-horde5/framework/ActiveSync/lib/Horde/ActiveSync/Driver/Base.php"]
>>>>>> 2013-12-22T06:34:58+00:00 EMERG: HORDE-BETA [horde] Missing required
>>>>>> state object [pid 15320 on line 122 of
>>>>>>
>>>>>>
>>>>>>
>>>>>> "/usr/share/git-horde5/framework/ActiveSync/lib/Horde/ActiveSync/Driver/Base.php"]
>>>>>> 2013-12-22T06:34:58+00:00 EMERG: HORDE-BETA [horde] Missing required
>>>>>> state object [pid 15947 on line 122 of
>>>>>>
>>>>>>
>>>>>>
>>>>>> "/usr/share/git-horde5/framework/ActiveSync/lib/Horde/ActiveSync/Driver/Base.php"]
>>>>>> 2013-12-22T06:36:23+00:00 EMERG: HORDE-BETA [horde] Missing required
>>>>>> state object [pid 16636 on line 122 of
>>>>>>
>>>>>>
>>>>>>
>>>>>> "/usr/share/git-horde5/framework/ActiveSync/lib/Horde/ActiveSync/Driver/Base.php"]
>>>>>>
>>>>>> Usually this means I have to update the DB schema or other config file
>>>>>> - but I've done that to no avail.  I can't find anything else that
>>>>>> could be stopping this and of course it's preventing any sync
>>>>>> whatsoever at that moment from any ActiveSync device.
>>>>>>
>>>>>> I did find an error about a missing parameter in the imp
>>>>>> backends.local.php for the quota driver, but the parameter was there
>>>>>> just commented out.  That error actually stopped after the git pull.
>>>>>>
>>>>>> The last entry in the activesync device file was when the git pull was
>>>>>> made.  Since then, nothing.
>>>>>>
>>>>>> https://webmail.example.net/admin/activesync.php results in a white
>>>>>> page and an apache error.
>>>>>>
>>>>>> [Tue Dec 24 16:15:35 2013] [error] [client 78.35.55.234] PHP Fatal
>>>>>> error:  Call to a member function setLogger() on a non-object in
>>>>>> /usr/share/git-horde5/horde/admin/activesync.php on line 25, referer:
>>>>>> https://webmail.example.net/admin/config/
>>>>>>
>>>>>>
>>>>>> Any ideas?
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> Sounds like you didn't (re)run install_framework.
>>>>
>>>>
>>>>
>>>>
>>>> Mike
>>>>
>>>> Firstly, apologies for the ridiculous subject.  I thought it would
>>>> only paste the first line.
>>>>
>>>> The pull-script did run install_dev on Sunday as it should.  Did you
>>>> mean
>>>> that?
>>>>
>>>> Running install_frameworks wants options and
>>>> http://www.horde.org/development/git says nothing about it.
>>>>
>>>> In fact Google has just 12 results for
>>>> /framework/bin/install_framework and none of them look really helpful
>>>>
>>>> Hints gratefully received :)
>>>
>>>
>>>
>>> Ah, yeah. Sorry that is the script that I meant (install_dev calls
>>> install_framework internally). Did you update the various configs after
>>> you
>>> pulled? We recently merged the horde 5_2 branches into master.
>>
>>
>> Hi Michael
>>
>> Did another git pull (automatically by a cron-job which also calls
>> install_dev) on Sunday and I still have this issue.  In fact it's
>> burning through my battery something cronic :)
>
>
> Well, the error you listed from your Apache log is coming from the admin
> page, something that wouldn't effect your device at all. Of course, it's
> probably secondary to the real issue - your install seems to not be
> instantiating the state object properly.
>
>> 2013-12-30T11:49:49+00:00 EMERG: HORDE-BETA [horde] Missing required
>> state object [pid 23708 on line 122 of
>>
>> "/usr/share/git-horde5/framework/ActiveSync/lib/Horde/ActiveSync/Driver/Base.php"]
>> 2013-12-30T11:49:51+00:00 EMERG: HORDE-BETA [horde] Missing required
>> state object [pid 23708 on line 122 of
>>
>> "/usr/share/git-horde5/framework/ActiveSync/lib/Horde/ActiveSync/Driver/Base.php"]
>> 2013-12-30T11:49:53+00:00 EMERG: HORDE-BETA [horde] Missing required
>> state object [pid 23708 on line 122 of
>>
>> "/usr/share/git-horde5/framework/ActiveSync/lib/Horde/ActiveSync/Driver/Base.php"]
>> 2013-12-30T11:49:54+00:00 EMERG: HORDE-BETA [horde] Missing required
>> state object [pid 23708 on line 122 of
>>
>> "/usr/share/git-horde5/framework/ActiveSync/lib/Horde/ActiveSync/Driver/Base.php"]
>> 2013-12-30T11:49:56+00:00 EMERG: HORDE-BETA [horde] Missing required
>> state object [pid 23708 on line 122 of
>>
>> "/usr/share/git-horde5/framework/ActiveSync/lib/Horde/ActiveSync/Driver/Base.php"]
>>
>> I still get a white page of death when accessing
>> https://webmail.example.net/admin/activesync.php
>>
>> Apache says:
>> [Mon Dec 30 11:53:26 2013] [error] [client 195.233.250.7] PHP Fatal
>> error:  Call to a member function setLogger() on a non-object in
>> /usr/share/git-horde5/horde/admin/activesync.php on line 25, referer:
>> https://webmail.example.net/admin/config/index.php?check_versions=1
>>
>> The admin/config page says I have all the latest versions, all schemas
>> are up to date, all applications are ready (so I assume that means all
>> the configs are correct and up-to-date) and all modules are up to
>> date.
>>
>> 116     public function __construct($params = array())
>> 117     {
>> 118         $this->_params = $params;
>> 119         if (empty($params['state']) ||
>> 120             !($params['state'] instanceof
>> Horde_ActiveSync_State_Base)) {
>> 121
>> 122             throw new InvalidArgumentException('Missing required
>> state object');
>> 123         }
>> 124
>>
>> I'm no php guru but as far as I can tell this says to construct the
>> $params into an array.
>
>
> It means the default value of the $params parameter should be an empty array
> if nothing is passed.
>
>> if the $params state is empty or if the value
>> is Horde_ActiveSync_State_Base then throw an exception.
>
>
> You have it backwards: If the $params array does NOT contain a value for the
> key 'state' OR if that value is NOT an instance of the state object.

Doh - I missed the "!" - of course it's NOT..  Sorry.

>>  But I'm at a
>> loss to know what really means.
>
>
> It's enforcing the contract/stated requirements of the method.
>
>> What should I do to debug this?
>
>
> Ensure your ActiveSync configuration is completely up to date, and the
> storage choices make sense for your install. I.e., if you are using SQL,
> make sure the database is correct. If you are using NoSql, make sure that
> Mongo is setup properly.

Happy New Year Michael!

I've looked at this several times - and if there's something missing
from the config I cannot find it.  As I mentioned, the admin/config
page reports the DB schema is all up-to-date (if that's what you mean
by making sure the DB is correct).  What could I do to verify that?  I
am using SQL.  Although I see no mention of storage for
ActiveSync.....

So, on faith, I decided to let the admin/config page generate a new
config after making my config 660 (it's usually 640).

And sure enough storage for ActiveSync now appears in the config.  I
know how this happened, but not why.

As recounted before, my git-update script does a weekly pull on Sunday
and reruns install_dev.  Then, if things stop working I go in and see
if the config needs changing (which I have to do manually, because the
config is not writeable by Apache).  Usually, the only thing that need
changing is the $Id - but I use the show differences to make sure.
Since the update 3 days before Christmas, that hasn't been working for
me.  I get an error that says:
No available configuration data to show differences for.

I'm not sure why that is - had that been working I would have seen
that you'd added Storage parameters for ActiveSync and made the
necessary edits.  Should the show differences code be working?  Is it
being retired?  Do you need more information from me to debug that?

Once again, I'd like to call for a subtle UI change (in the colour of
the tabs) when new parameters have been added.  That too would have
alerted me to which area I should have been investigating (because of
course once the DB schema showed up as not needing updating, I wasn't
in a position to think it might be a storage config issue).

Thanks for pointing me in the right direction though :)

Simon


More information about the horde mailing list