6.0.0-RC7
6/18/26

[#13264] Search "entire message" member function fetch() on a non-object
Summary Search "entire message" member function fetch() on a non-object
Queue IMP
Queue Version Git master
Type Bug
State Resolved
Priority 1. Low
Owners slusarz (at) horde (dot) org
Requester samuel.wolf (at) wolf-maschinenbau (dot) de
Created 6/14/14 (4387 days ago)
Due
Updated 8/21/14 (4319 days ago)
Assigned 7/3/14 (4368 days ago)
Resolved 7/3/14 (4368 days ago)
Github Issue Link
Github Pull Request
Milestone
Patch No

History
811 Git Commit Comment #21 Reply to this comment
Changes have been made in Git (master):

commit 5fe2f8f15b9f83719cec4159b073e90299811a4f
Author: Michael M Slusarz <slusarz@horde.org>
Date:   Thu Aug 21 17:13:14 2014 -0600

     [mms] Ensure that search/POP3 mailbox listings are saved even if 
there is an issue with the underlying cache backend.

     See Ticket #13264

  imp/docs/CHANGES                |    2 +
  imp/lib/Factory/MailboxList.php |   78 
++++++++++++++++++++++++++++-----------
  imp/package.xml                 |    1 +
  3 files changed, 59 insertions(+), 22 deletions(-)

http://github.com/horde/horde/commit/5fe2f8f15b9f83719cec4159b073e90299811a4f
1611 Michael Slusarz Comment #20 Reply to this comment
I added code to IMP 6.2.2 to ensure that cache backend failures will 
not cause a mailbox rebuild, which may in certain cases cause issue 
with UID mis-mappings.
3011 Git Commit Comment #19 Reply to this comment
Changes have been made in Git (FRAMEWORK_5_2):

commit 2b93fe89922bf97bb84f15765b53063f1257c22f
Author: Michael M Slusarz <slusarz@horde.org>
Date:   Thu Aug 21 17:13:14 2014 -0600

     [mms] Ensure that search/POP3 mailbox listings are saved even if 
there is an issue with the underlying cache backend.

     See Ticket #13264

  imp/docs/CHANGES                |    2 +
  imp/lib/Factory/MailboxList.php |   69 ++++++++++++++++++++++++++------------
  imp/package.xml                 |    2 +
  3 files changed, 51 insertions(+), 22 deletions(-)

http://github.com/horde/horde/commit/2b93fe89922bf97bb84f15765b53063f1257c22f
294 jasper (dot) olbrich (at) students (dot) uni-marburg (dot) de Comment #18 Reply to this comment
I'm afraid that your changes didn't really fix this issue. From my
debug-logging, I see that the 'cache' parameter always is of the
Horde_Cache type, regardless of the cache driver/backend.
This is incorrect. testReadWrite() should NOT be used in a 
production environment first of all (brutal performance hit).  And 
regardless - this exists to catch permission issues when running 
Horde scripts from the command line.
I almost guessed that testRW() was suboptimal, but can you please 
check/verify that param['cache'] is always Horde_Cache and the 
branching in the constructor has to depend on its _storage?
More important: this just masks the configuration problem of "why is 
your cache backend not working in the first place"?
Not working or not configured. Perhaps it would make sense to document 
the consequences of using NOT RECOMMENDED" settings?

254 Michael Slusarz Comment #17
Version ⇒ Git master
Reply to this comment
I'm afraid that your changes didn't really fix this issue. From my 
debug-logging, I see that the 'cache' parameter always is of the 
Horde_Cache type, regardless of the cache driver/backend.
This is incorrect. testReadWrite() should NOT be used in a production 
environment first of all (brutal performance hit).  And regardless - 
this exists to catch permission issues when running Horde scripts from 
the command line.

More important: this just masks the configuration problem of "why is 
your cache backend not working in the first place"?  Any cache backend 
other than Null should obviously be read/write to Horde.  Or else 
what's the point of defining a cache driver if you can't use it?
72 Jasper (dot) Olbrich (at) students (dot) uni-marburg (dot) de Comment #16
New Attachment: 0001-Fix-bug-13264.patch Download
Reply to this comment
I'm afraid that your changes didn't really fix this issue. From my 
debug-logging, I see that the 'cache' parameter always is of the 
Horde_Cache type, regardless of the cache driver/backend.

I can successfully use large search results (with and without caching) 
with the attached patch.

406 Michael Slusarz Comment #15 Reply to this comment
There is NO reason to not be using, e.g., file-based cache instead.
file-based cache is faster than I thought, also faster than xCache, 
thanks for the hint michael!
There's very little difference between a file-based cache and an 
"in-memory" cache on any recent OS since the contents of the file are 
almost certainly residing in memory buffers anyway (assuming, as is 
true for most modern boxes, that you have sufficient memory).
4512 samuel (dot) wolf (at) wolf-maschinenbau (dot) de Comment #14 Reply to this comment
There is NO reason to not be using, e.g., file-based cache instead.
file-based cache is faster than I thought, also faster than xCache, 
thanks for the hint michael!
139 Michael Slusarz Comment #13 Reply to this comment
xCache is not recommended in general.

There is NO reason to not be using, e.g., file-based cache instead.
29 samuel (dot) wolf (at) wolf-maschinenbau (dot) de Comment #12 Reply to this comment
Increase the xCache is also NOT RECOMMENDED?
199 Michael Slusarz State ⇒ Resolved
 
09 Git Commit Comment #11 Reply to this comment
Changes have been made in Git (master):

commit ba60daa40ae7b63879812dbf7917d1f008d1ddc0
Author: Michael M Slusarz <slusarz@horde.org>
Date:   Thu Jul 3 15:42:10 2014 -0600

     Keep data in session storage if using a Null cache driver with 
Horde_Core_Cache_Session

     Bug #13264

     It makes zero sense to run IMP (or any Horde app) with a null cache
     driver, but I guess we need to support those broken configs.

  framework/Core/lib/Horde/Core/Cache/Session.php |    9 +++++++--
  1 files changed, 7 insertions(+), 2 deletions(-)

http://github.com/horde/horde/commit/ba60daa40ae7b63879812dbf7917d1f008d1ddc0
589 Git Commit Comment #10 Reply to this comment
Changes have been made in Git (master):

commit e6536d65627ea4fb0351692fe430333f6ad46733
Author: Michael M Slusarz <slusarz@horde.org>
Date:   Thu Jul 3 15:36:35 2014 -0600

     Bug #13264: Better documentation on good cache backend drivers

  horde/config/conf.xml |   20 +++++++++++++++++---
  1 files changed, 17 insertions(+), 3 deletions(-)

http://github.com/horde/horde/commit/e6536d65627ea4fb0351692fe430333f6ad46733
369 Git Commit Comment #9 Reply to this comment
Changes have been made in Git (FRAMEWORK_5_2):

commit 85d37ae6672436acbfe6bb42a41af9938bbdcf42
Author: Michael M Slusarz <slusarz@horde.org>
Date:   Thu Jul 3 15:36:35 2014 -0600

     Bug #13264: Better documentation on good cache backend drivers

  horde/config/conf.xml |   20 +++++++++++++++++---
  1 files changed, 17 insertions(+), 3 deletions(-)

http://github.com/horde/horde/commit/85d37ae6672436acbfe6bb42a41af9938bbdcf42
469 Michael Slusarz Comment #8 Reply to this comment
There's your problem.  IMP requires a Horde_Cache driver.
In this case close the ticket (sorry), using now xCache.
It sounds like the problem here is that people are confused about what 
cache to use.  Which is a documentation issue

xCache is NOT useful as a Horde_Cache backend, since it is neither 
persistent and/or isn't large enough to be useful on even a smallish 
(25+ users) installation.
588 Michael Slusarz Assigned to Michael Slusarz
State ⇒ Assigned
Priority ⇒ 1. Low
 
388 samuel (dot) wolf (at) wolf-maschinenbau (dot) de Comment #7 Reply to this comment
There's your problem.  IMP requires a Horde_Cache driver.
In this case close the ticket (sorry), using now xCache.
458 Michael Slusarz Comment #6 Reply to this comment
There's your problem.  IMP requires a Horde_Cache driver.
4310 samuel (dot) wolf (at) wolf-maschinenbau (dot) de Comment #5 Reply to this comment
The only thing I can think of is that your cache backend is broken.   
(You are not using SQL as a cache backend are you?)
Use a MySQL DB, if the DB is also used when $conf['cache']['driver'] = 
'Null';  yes.
201 hiromi (at) tac (dot) tsukuba (dot) ac (dot) jp Comment #4 Reply to this comment

[Show Quoted Text - 9 lines]
I said in ML,
"I can reproduce this error if I disable the 'horde cache' in configuration.
  $conf['cache']['driver'] = 'Null';".

If I enable the cache, the search works fine.
I tested NoSQL(mongodb) and local file system backends.



199 Michael Slusarz Comment #3 Reply to this comment
Hiromi Kimura found out [2] that the root cause is the maxsize in 
Horde/Core/Cache/Session.php
This should be irrelevant.  The "solution" in there does nothing more 
than store more information in the session rather than offloading to 
the cache backend.

The only thing I can think of is that your cache backend is broken.   
(You are not using SQL as a cache backend are you?)
176 samuel (dot) wolf (at) wolf-maschinenbau (dot) de Comment #2 Reply to this comment
Increase my xCache size to the following values and enable xCache in horde.
xcache.size  =                512M
xcache.var_size  =            512M

$conf['cache']['driver'] = 'Xcache';

Works now with over 15 000 messages.
177 samuel (dot) wolf (at) wolf-maschinenbau (dot) de Comment #1
Priority ⇒ 2. Medium
State ⇒ Unconfirmed
Patch ⇒ No
Milestone ⇒
Summary ⇒ Search "entire message" member function fetch() on a non-object
Type ⇒ Bug
Queue ⇒ IMP
Reply to this comment
See mailing list [1], there is a problem with IMP (?) and search results.

Hiromi Kimura found out [2] that the root cause is the maxsize in 
Horde/Core/Cache/Session.php
Increase this value to open more messages of an search result in IMP.

[1] http://marc.info/?t=140215085400002&r=1&w=2
[2] http://marc.info/?l=imp&m=140262211703797&w=2

Saved Queries