Comment 2 for bug 1019437

Revision history for this message
Roland Hieber (rohieb) wrote :

Okay, today I monitored the DBUS interface with dbus-monitor [0] to get a better understanding what is going on here. According to the specification [1], the image data is sent as a byte array of raw pixel data (no compression, PNG, JPEG, GIF or whatever). In my dbus-monitor output, there were a few notifications with successfully displayed images, and the arrays there look like standard image date with red, green, blue and alpha bytes (see the first log file). However, the other notifications that were not rendered, showed somehow "random" image data, but everytime the same data for a Twitter handle [2]. Also, if you look closely at the icon_data field, the byte counts are wrong: according to the field, the byte array should have 54*54*3 bytes (width*height*bytes per pixel), but in the first two log entries, there is too much data (8854 instead of 8748 bytes, which is not even divisible by 3!)

I tried to understand the code that generates the notifications, but unfortunatenly I was not able to understand it completely, nor do I see where it goes wrong. Perhaps the error is also in the notifcation library.

 0: $ dbus-monitor "sender=:1.122, interface=org.freedesktop.Notifications" # where sender=:1.122 was the Polly instance
 1: http://developer.gnome.org/notification-spec/#icons-and-images-formats
 2: Twitter handles and first line of "random" image data, from the second log file:
    $ grep -B 1 -A 15 'censored' polly-notifications-fail.log | grep -e "^ string " -e '^ ' |grep -v censored
   string "qnavry_obuere"
                  2f 3f 61 30 40 62 32 42 64 32 42 64 30 40 62 2f 3f 61 2f 3f
   string "qnavry_obuere"
                  2f 3f 61 30 40 62 32 42 64 32 42 64 30 40 62 2f 3f 61 2f 3f
   string "qnavry_obuere"
                  2f 3f 61 30 40 62 32 42 64 32 42 64 30 40 62 2f 3f 61 2f 3f
   string "papierschiff_"
                  fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe ff ff ff ff ff
   string "papierschiff_"
                  fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe ff ff ff ff ff
   string "scy"
                  dc 7a 24 dc 7a 20 dc 7a 20 dd 79 21 df 7c 22 e3 80 22 ec 8b
   string "Meeresbraut"
                  1f 20 24 1e 1f 23 1e 1f 23 1e 1e 20 1d 1d 1f 1c 1c 1e 19 19
   string "Meeresbraut"
                  1f 20 24 1e 1f 23 1e 1f 23 1e 1e 20 1d 1d 1f 1c 1c 1e 19 19
   string "larsan"
                  f0 f1 f3 f1 f2 f4 f1 f2 f4 f2 f3 f5 f2 f3 f5 f3 f4 f6 f3 f4
   string "felis_blue"
                  00 02 06 01 00 05 03 00 04 01 01 03 00 02 01 00 03 01 02 01
   string "felis_blue"
                  00 02 06 01 00 05 03 00 04 01 01 03 00 02 01 00 03 01 02 01
   string "Meeresbraut"
                  1f 20 24 1e 1f 23 1e 1f 23 1e 1e 20 1d 1d 1f 1c 1c 1e 19 19
   string "scy"
                  dc 7a 24 dc 7a 20 dc 7a 20 dd 79 21 df 7c 22 e3 80 22 ec 8b
   string "felis_blue"
                  00 02 06 01 00 05 03 00 04 01 01 03 00 02 01 00 03 01 02 01
   string "felis_blue"
                  00 02 06 01 00 05 03 00 04 01 01 03 00 02 01 00 03 01 02 01
   string "papierschiff_"
                  fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe ff ff ff ff ff