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

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


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

> 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.

Oops, this may not be the offending call, I noticed that there are  
several backtrace for a single occurrence of the problem. I don't know  
how to do this, I need an exact line to insert after all. Trying this  
out with a mobile phone as a console is no fun.

>> 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