Bug tracker

This ticket has been moved to our new tracker. Open Ticket PHPBB3-1472 now.

Queued Jabber notifications don't get delivered (fix completed in vcs)

Queued Jabber messages don't get delivered here, but if I disable message queueing, they get delivered.

Steps to reproduce:

1. write a PM to a user with Jabber notification turned on (posting on a watched topic probably would work too)
2. there is a cache/queue.php with content which looks sensible
3. wait some time until the queue run is called
4. the queue.php seems to be gone but no Jabber message is sent

Messaging via the Jabber profile link works - probably because it is not queued.

Using:

php 5.1.4
Tried jabber servers: jabber.ccc.de and a own one running jabberd 2.0.11

Comments / History

Posted by Umbra Obscura on Aug 12th 2006, 21:27

Addon information: This happend while using my German language pack which contained "Umlaute" in the message. They probably don't get encoded correctly when sending from the queue and produces following error in the logs of the Jabber server:

Aug 12 23:23:06 [jabberd/c2s] [8] [forum@changed.for.privacy/Forum] error: XML parse error (not well-formed (invalid token))

Posted by Umbra Obscura on Aug 30th 2006, 05:43

Suggested fix: (diff has spaces instead of tabs through c&p but as it is trivial it should be easy to apply manually or using -l)

Code: Select all
--- functions_messenger.php     22 Aug 2006 21:26:05 -0000      1.56
+++ functions_messenger.php     30 Aug 2006 05:31:22 -0000
@@ -463,7 +463,8 @@
                        $this->queue->put('jabber', array(
                                'addresses'             => $addresses,
                                'subject'               => $this->subject,
-                               'msg'                   => $this->msg)
+                               'msg'                   => $this->msg,
+                               'encoding'              => $this->encoding)
                        );
                }
                unset($addresses);
@@ -620,6 +621,7 @@
                                        break;

                                        case 'jabber':
+                                               $this->jabber->encoding = $encoding;
                                                foreach ($addresses as $address)
                                                {
                                                        $this->jabber->send_message($address, 'normal', NULL, array('body' => $msg));


After doing this change, everything is working as expected. I am using current CVS

Posted by naderman (Development Team Leader) on Aug 30th 2006, 19:01

Thanks a lot Smile

Linked ticket with changeset: r6380

Action performed by naderman (Development Team Leader) on Sep 17th 2006, 22:02

Posted by Umbra Obscura on Sep 18th 2006, 06:45

The original bug is fixed with the encoding changes and queued messages get out with the correct encoding but package_size is not set in data_ary when I sent a test message. It defaulted to 0 and

Code: Select all
$num_items = (sizeof($data_ary['data']) < $package_size) ? sizeof($data_ary['data']) : $package_size;


evaluated to 0. So the jabber message was not sent

Posted by naderman (Development Team Leader) on Oct 1st 2006, 20:36

Please open a new bug report for a new bug in future.

Ticket details

Related SVN changesets