[imp] Message content not displayed after upgrade to PHP 7.3

Arjen de Korte build+horde at de-korte.org
Thu Dec 27 18:11:35 UTC 2018


Citeren Arjen de Korte <build+horde at de-korte.org>:

> Citeren Michael J Rubinsky <mrubinsk at horde.org>:
>
>> Quoting Arjen de Korte <build+horde at de-korte.org>:
>>
>>> Citeren Arjen de Korte <build+horde at de-korte.org>:
>>>
>>>> Citeren Arjen de Korte <build+horde at de-korte.org>:
>>>>
>>>>> Just a heads-up for those that what to upgrade to PHP 7.3: it  
>>>>> seems like there are some incompatibilities with Horde (master)  
>>>>> in handling regular expressions.
>
> Apologies for the wrong information, but this is with the latest  
> packages from PEAR (not master).
>
>>>>> Some (but not all) messages will not display content.
>>>
>>> It looks like HTML mail is displayed correctly and text-only ones don't.
>>>
>>>>> The following is logged for each message:
>>>>>
>>>>> 2018-12-25T12:47:27+01:00 WARN: horde [imp] PHP ERROR:  
>>>>> preg_replace_callback(
>>>>> ): Compilation failed: invalid range in character class at  
>>>>> offset 68 [pid 207
>>>>> 6 on line 99 of "/usr/share/php7/PEAR/Horde/Text/Filter.php"]
>>>>> 2018-12-25T12:47:27+01:00 WARN: horde [imp] PHP ERROR:  
>>>>> preg_replace_callback(
>>>>> ): Compilation failed: invalid range in character class at  
>>>>> offset 649 [pid 20
>>>>> 76 on line 99 of "/usr/share/php7/PEAR/Horde/Text/Filter.php"]
>>>>>
>>>>> This may be due to the stricter interpretation of character  
>>>>> ranges in classes.
>>>>
>>>> Note that the message content is available. I can reply to such a  
>>>> message (like the one quoted above) just fine. So the trouble  
>>>> seems to be in rendering messages, rather than grabbing them from  
>>>> the IMAP server.
>>
>> Any chance you can get a stack trace to see where the regexp is  
>> coming from? I can't reproduce this on a fresh VM I spun up with  
>> php 7.3 and current git master.
>
> I'll try. But since I'm hundreds of kilometers from the system and  
> all I have is a mobile phone as a console (through ssh), it's a bit  
> clumsy to apply changes. What is the exact line I need to insert  
> before/after the offending code on line 99?

I suddenly remembered how to make a backtrace (Horde::debug), so I  
added this just before the offending line and this is the backtrace I  
got:

Backtrace:
1. Horde_Core_Ajax_Application->doAction() /srv/www/htdocs/horde/services/aja
x.php:61
2. IMP_Ajax_Application_Handler_Common->showMessage() /usr/share/php7/PEAR/Ho
rde/Core/Ajax/Application.php:175
3. IMP_Ajax_Queue->message() /srv/www/htdocs/horde/imp/lib/Ajax/Application/H
andler/Common.php:699
4. IMP_Ajax_Application_ShowMessage->showMessage() /srv/www/htdocs/horde/imp/
lib/Ajax/Queue.php:450
5. Horde_Core_Factory_TextFilter->filter() /srv/www/htdocs/horde/imp/lib/Ajax
/Application/ShowMessage.php:235
6. Horde_Text_Filter::filter() /usr/share/php7/PEAR/Horde/Core/Factory/TextFi
lter.php:70
7. Horde_Text_Filter_Text2html->preProcess() /usr/share/php7/PEAR/Horde/Text/
Filter.php:80
8. Horde_Text_Filter::filter() /usr/share/php7/PEAR/Horde/Text/Filter/Text2ht
ml.php:163
9. Horde::debug() /usr/share/php7/PEAR/Horde/Text/Filter.php:99

Sorry about the poor formatting.

> I did find some regexps that needed to be fixed, but I dont' think
>> those are called when just displaying an email. See:  
>> https://github.com/horde/imp/commit/5186ad002b0809960fd6096a2ca85ab8d2aab888
>>
>> Also, please make sure you are up to date with git on *all* packages.
>
> I'm sorry about the confusion, this is on the packages from PEAR  
> (up-to-date as of now).
>
>> I know there were a few similar fixes not *too* long ago in some  
>> other packages, like Text_Filter.





More information about the imp mailing list