My bad, there seems to be Spring injection issues:

mailbox-tools.xml defines:

    <bean id ="fake-reindexer"
class="org.apache.mailbox.tools.indexer.ThrowsReIndexer" lazy-init="true"/>

As the indexer is configurable, we are not able to inject the
ListeningMessageSearchIndex for doing that.

We may need aditional logic upon the indexer choice for providing the
correct reIndexer binding:
 - keep the throwing one when lucene is not selected
 - Use ReIndexerImpl with luceneSearchIndex injected in it when lucene
is configured.

I will write the issue, contributions are welcomed here!

See https://issues.apache.org/jira/browse/JAMES-2965

Benoit

On 05/11/2019 13:14, Jerry Malcolm wrote:
> I had already changed back to luceneIndex from lazyIndex and rebooted. 
> I also removed the lazyIndex's version of the lucene folder.  But I'm
> still getting the same exception.
> 
> 
> On 11/5/2019 12:07 AM, Tellier Benoit wrote:
>> ReIndexing is not implemented on top of lazyIndex.
>>
>> You need to configure lucene in index.xml (meaning for you, downtime in
>> search)
>>
>> On 05/11/2019 12:44, Jerry Malcolm wrote:
>>> Benoit,
>>>
>>> This all makes sense.  I tried the CLI to ReindexAll and got an
>>> exception.  I figured I was just doing something wrong on the CLI with
>>> JMX, etc.  But every other command I tried worked fine.  Just the
>>> ReindexAll and ReindexMailbox failed.   (BTW.... the web page shows the
>>> command: |{cli} Reindex #private u...@domain.tld INBOX  but the actual
>>> command is ReindexMailbox for a specific mailbox.)|
>>>
>>> |Before I start digging into what is happening, does this exception tell
>>> you anything? Do I need to configure something in the james-cli.sh file
>>> telling it that I'm using JPA instead of file-based mailboxes or
>>> anything like that?
>>> |
>>>
>>> |Exception:
>>> |
>>>
>>> [root@ip-172-31-32-236 james-3.4.0]# ./bin/james-cli.sh ReindexAll
>>> ERROR 23:22:54,105 | org.apache.james.cli.ServerCmd | Error while
>>> playing command
>>> org.apache.james.mailbox.exception.MailboxException: Not implemented
>>>          at
>>> org.apache.mailbox.tools.indexer.ThrowsReIndexer.reIndex(ThrowsReIndexer.java:43)
>>>
>>>
>>>          at
>>> org.apache.james.adapter.mailbox.ReIndexerManagement.reIndex(ReIndexerManagement.java:67)
>>>
>>>
>>>          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>          at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>
>>>
>>>          at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>
>>>
>>>          at java.lang.reflect.Method.invoke(Method.java:498)
>>>
>>> On 11/4/2019 8:48 PM, Tellier Benoit wrote:
>>>> Hi Jerry,
>>>>
>>>> Thanks for the updated details, it now makes perfect sens!
>>>>
>>>> Long story short: Your Lucene index needs to be migrated as well. I
>>>> suspect you migrated only your database (full copy), hence issues.
>>>>
>>>> To do migration, at Linagora, we prefer using external protocols, and
>>>> leaving the inner data structures untouched (it's just too easy to make
>>>> mistakes...).
>>>>
>>>> What happens is that then you had the data in SQL database but none in
>>>> the Lucene index, hence the unaccurate search results harming the IOS
>>>> experience.
>>>>
>>>>   From that point:
>>>>    - You can fix that from re-indexing data from the SQL database and
>>>> rebuild the Lucene index from it. There's webadmin(guice only) [1] and
>>>> CLI [2] support for that (though the CLI experience, the only available
>>>> option for Spring is more primitive.
>>>>
>>>> lazyIndex means full scan on every search request. Expect the AWS bill
>>>> to be expansive. Expect your clients to complain about latencies. I
>>>> would be you, I'd rebuild the Lucene index at the first occasion.
>>>>
>>>> Now, I also believe cascading user flags issues might be caused by some
>>>> unappropriate table structure, there was some bugs reported regarding
>>>> this. I'm unable to retrieve corresponding information.
>>>>
>>>> [1]
>>>> https://github.com/apache/james-project/blob/master/src/site/markdown/server/manage-webadmin.md#reindexing-all-mails
>>>>
>>>>
>>>> [2]
>>>> https://github.com/apache/james-project/blob/master/src/site/markdown/server/manage-cli.md#re-indexing
>>>>
>>>>
>>>>
>>>> Cheers,
>>>>
>>>> Benoit
>>>>
>>>> On 05/11/2019 07:47, Jerry Malcolm wrote:
>>>>> I'm starting a new thread for this specific issue.  One external
>>>>> symptom
>>>>> that has now been isolated to this problem is documented in my
>>>>> long-running (and hopefully completed) thread about iPhones losing all
>>>>> of their mail.
>>>>>
>>>>> Here's what I know about this so far:
>>>>>
>>>>> 1) I had no clue what 'Lucene' was or what it did.  So I've never
>>>>> touched anything in any config file related to it.  Whatever happened
>>>>> came right out of the box as far as lucene config is concern.  (ver
>>>>> 3.4+... I extracted the master branch a day or so after 3.4 was
>>>>> released).
>>>>>
>>>>> 2) I have been in the process of migrating 17+ years of mail in a
>>>>> James
>>>>> SQL db from v3b5 on a dedicated server to ver 3.4 in Amazon Web
>>>>> Services
>>>>> environment.
>>>>>
>>>>> 3) On 21Oct, I threw the switch and went live on my AWS environment.
>>>>>
>>>>> 4) Immediately some of my clients with iPhones complained that all of
>>>>> their mail disappeared from their phone.
>>>>>
>>>>> 5) Being an iPhone user myself, I verified the problem.  However, I
>>>>> noticed that mail arriving to the new James instance was showing up in
>>>>> the iPhone.  Just no mail pre 21Oct.
>>>>>
>>>>> 6) Thunderbird was showing all of the old mail in the folders. But
>>>>> I've
>>>>> since determined that TBird uses a different imap command that goes
>>>>> straight to the JPA database to populate folders, bypassing the Lucene
>>>>> index.
>>>>>
>>>>> 7) After two weeks of educating myself on the entire imap component
>>>>> and
>>>>> doing a whole lot of adding log statements and trial & error debug,
>>>>> the
>>>>> Lucene index became the prime suspect
>>>>>
>>>>> 8) Today, I removed the var/store/lucene folder and rebooted. The
>>>>> iPhones now wiped out the last two weeks of email and either showed
>>>>> "No
>>>>> Mail" or mail that arrived in the few minutes after wiping the lucene
>>>>> folder.  Note that it STILL didn't reindex old mail, even with an
>>>>> index
>>>>> 'restart'.
>>>>>
>>>>> 9) Finally on a whim, I changed indexer.xml to use "lazyIndex" instead
>>>>> of "luceneIndex".  Finally, the indexes rebuilt successfully, and the
>>>>> iPhones now show all of the mail. Success...
>>>>>
>>>>> Summary:  lazyIndex seems to have no problems.  Not sure what's going
>>>>> wrong when luceneIndex is selected.  But it isn't right.
>>>>>
>>>>> Do I have any mis-assumptions?  Is there something else I need to
>>>>> do in
>>>>> order to get Lucene to index old mail?
>>>>>
>>>>> This has been a tough one... I think I'll take a nap now...:-)
>>>>>
>>>>> Jerry
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
>>>>> For additional commands, e-mail: server-dev-h...@james.apache.org
>>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
>>>> For additional commands, e-mail: server-dev-h...@james.apache.org
>>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
>> For additional commands, e-mail: server-dev-h...@james.apache.org
>>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
> For additional commands, e-mail: server-dev-h...@james.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to