#749193 apt-listbugs: Reemergence of ruby encoding troubles

#749193#5
Date:
2014-05-25 00:06:38 UTC
From:
To:

#749193#10
Date:
2014-05-25 08:26:27 UTC
From:
To:
On Sun, 25 May 2014 02:06:38 +0200 Stefan Skoglund wrote:

[...]

Hello Stefan, thanks for your bug report.

I see that you test LANG=sv_SE.utf-8 with lowercase "utf", which
reminds me of bug #725496 [1]. That other bug should however be fixed
in current ruby-gettext, so it's probably not the same issue you are
experiencing...

[1] https://bugs.debian.org/725496

I will however try to reproduce the bug soon and then I'll get back to
you... Please stay tuned!  ;-)

[...]

I am under the impression that the issue in how Ruby handles locales,
hence sniffing the network traffic won't probably be of much use... Or
maybe not? I don't know...

#749193#15
Date:
2014-05-25 18:26:25 UTC
From:
To:
The direct trigger of the crash is a peculiar character in a bug report
for sound-juicer (bug #717391.)

Take a look in the report from Ben Finney (message 1.)

It could be a lack of input sanitizing in bugs.debian.org ?

Still, this together with localization shouldn't cause a crash in
ruby's localization module (if the weakness is there.)

The older report (725496) regarding this had another trigger:

for some reason the reporter's desktop environment saved a value of
"de_DE.utf8". He destroyed the setting in
"var/lib/AccountsServices/users" and did a reselect of his environment
(dpkg-reconfigure -plow locales) and re-login with the proper LANG
selected.

That cured the symptom in that case.

For me this crashes:
---
[stefan@LOKELDARN@compaq:~]$ echo $LANG
en_GB.UTF-8
[stefan@LOKELDARN@compaq:~]$ LC_MESSAGES=sv_SE.UTF-8 apt-listbugs list
sound-juicer
Hämtar felrapporter... Klar
Tolkar hittad/tillrättad information... Klar
grave bugs of sound-juicer (→ ) <Resolved in some Version>
/usr/share/apt-listbugs/apt-listbugs/logic.rb:611:in `block (4 levels)
in display_bugs': incompatible character encodings: ASCII-8BIT and UTF-8
(Encoding::CompatibilityError)
        from /usr/share/apt-listbugs/debian/bug.rb:66:in `block in
each_by_category'
        from /usr/share/apt-listbugs/debian/bug.rb:65:in `each'
        from /usr/share/apt-listbugs/debian/bug.rb:65:in
`each_by_category'
        from /usr/share/apt-listbugs/apt-listbugs/logic.rb:594:in `block
(3 levels) in display_bugs'
        from /usr/share/apt-listbugs/apt-listbugs/logic.rb:590:in `each'
        from /usr/share/apt-listbugs/apt-listbugs/logic.rb:590:in `block
(2 levels) in display_bugs'
        from /usr/share/apt-listbugs/apt-listbugs/logic.rb:589:in `each'
        from /usr/share/apt-listbugs/apt-listbugs/logic.rb:589:in `block
in display_bugs'
        from /usr/share/apt-listbugs/apt-listbugs/logic.rb:588:in `each'
        from /usr/share/apt-listbugs/apt-listbugs/logic.rb:588:in
`display_bugs'
        from /usr/share/apt-listbugs/apt-listbugs/logic.rb:375:in `view'
        from /usr/sbin/apt-listbugs:513:in `<main>'
---

But this works:
---
[stefan@LOKELDARN@compaq:~]$ LANG=sv_SE.UTF-8 LC_MESSAGES=en_GB.UTF-8
apt-listbugs list sound-juicer
Retrieving bug reports... Done
Parsing Found/Fixed information... Done
grave bugs of sound-juicer (→ ) <Resolved in some Version>
 #717391 - sound-juicer: Refuses to start: “The plugin necessary for
file access was not found” (Fixed: 3.8.0-2 sound-juicer/3.11.90-1)
Summary:
 sound-juicer(1 bug)
---

Ruby isn't sensitive to 'utf-8' or 'UTF-8' but 'utf8' or 'UTF8' was once
sensitive.

This crashes:
---
[stefan@LOKELDARN@compaq:~]$ LANG=sv_SE.UTF-8 LC_MESSAGES=de_DE.UTF-8
apt-listbugs list sound-juicer
Laden der Fehlerberichte ... Erledigt
»Found/Fixed«-Informationen werden ausgewertet ... Erledigt
grave Fehler von sound-juicer (→ ) <Resolved in some Version>
/usr/share/apt-listbugs/apt-listbugs/logic.rb:611:in `block (4 levels)
in display_bugs': incompatible character encodings: ASCII-8BIT and UTF-8
(Encoding::CompatibilityError)
        from /usr/share/apt-listbugs/debian/bug.rb:66:in `block in
each_by_category'
        from /usr/share/apt-listbugs/debian/bug.rb:65:in `each'
        from /usr/share/apt-listbugs/debian/bug.rb:65:in
`each_by_category'
        from /usr/share/apt-listbugs/apt-listbugs/logic.rb:594:in `block
(3 levels) in display_bugs'
        from /usr/share/apt-listbugs/apt-listbugs/logic.rb:590:in `each'
        from /usr/share/apt-listbugs/apt-listbugs/logic.rb:590:in `block
(2 levels) in display_bugs'
        from /usr/share/apt-listbugs/apt-listbugs/logic.rb:589:in `each'
        from /usr/share/apt-listbugs/apt-listbugs/logic.rb:589:in `block
in display_bugs'
        from /usr/share/apt-listbugs/apt-listbugs/logic.rb:588:in `each'
        from /usr/share/apt-listbugs/apt-listbugs/logic.rb:588:in
`display_bugs'
        from /usr/share/apt-listbugs/apt-listbugs/logic.rb:375:in `view'
        from /usr/sbin/apt-listbugs:513:in `<main>'
[stefan@LOKELDARN@compaq:~]$
---

#749193#20
Date:
2014-05-25 22:07:40 UTC
From:
To:
Control: reassign -1 ruby-locale 2.1.0-2
Control: affects -1 + apt-listbugs

Yes, I reproduced the issue with the following command:

  $ LC_ALL=sv_SE.UTF-8 apt-listbugs list sound-juicer

I performed a number of tests and it seems to me that the problem lies
in the subject line of bug #717391 which includes non-ASCII UTF-8
quotes “ and ” .

For some reason that I cannot understand, Ruby at some point seems to
consider this string as ASCII-8BIT and cannot concatenate it with a
UTF-8 string. Hence, when using a localization where the translation of
"Fixed" includes non-ASCII UTF-8 characters (one such localization is
the Swedish "Tillrättade"), an Encoding::CompatibilityError is
generated...

As I said, I cannot understand why Ruby is convinced that the subject
line of bug #717391 is encoded in ASCII-8BIT.
By using the -d option of apt-listbugs, I took a look at the SOAP wire
dump and it seems to me that the Debian BTS SOAP interface sends this
subject line as

<subject xsi:type="xsd:base64Binary">c291bmQtanVpY2VyOiBSZWZ1c2VzIHRvIHN0YXJ0OiDigJxUaGUgcGx1Z2luIG5lY2Vzc2FyeSBmb3IgZmlsZSBhY2Nlc3Mgd2FzIG5vdCBmb3VuZOKAnQ==</subject>

but:

  $ echo c291bmQtanVpY2VyOiBSZWZ1c2VzIHRvIHN0YXJ0OiDigJxUaGUgcGx1Z2luIG5lY2Vzc2FyeSBmb3IgZmlsZSBhY2Nlc3Mgd2FzIG5vdCBmb3VuZOKAnQ== | base64 -d
  sound-juicer: Refuses to start: “The plugin necessary for file access was not found”

and:

  $ echo c291bmQtanVpY2VyOiBSZWZ1c2VzIHRvIHN0YXJ0OiDigJxUaGUgcGx1Z2luIG5lY2Vzc2FyeSBmb3IgZmlsZSBhY2Nlc3Mgd2FzIG5vdCBmb3VuZOKAnQ== | base64 -d | file -
  /dev/stdin: UTF-8 Unicode text, with no line terminators

Hence, I seem to understand that this subject line is sent as a
base64-encoded UTF-8 string. I failed to figure out where Ruby begins
to consider it as ASCII-8BIT.

I am reassigning your bug report to package ruby-locale, since I am
more and more convinced that the problem lies in how Ruby handles
string encodings.
I hope the maintainers of ruby-locale may investigate and fix
the issue.
[...]

Definitely, lowercase "utf" or uppercase "UTF" does not seem to make
any difference for the issue you are experiencing.

Thanks for taking the time to check this as well!


Now let's hope that the issue may be fixed soon.
Bye.

#749193#33
Date:
2014-06-01 16:15:52 UTC
From:
To:
On Mon, 26 May 2014 00:07:40 +0200 Francesco Poli wrote:

[...]
[...]
responsibility of the SOAP library to return UTF-8 strings with the
encoding correctly set, so that Ruby knows how to handle them.

I am reassigning the bug report to package ruby-soap4r, in the hope
that the actual issue may be fixed there.


Please note that, if I force apt-listbugs to interpret the subject line
of bugs as UTF-8 encoded strings (by modifying a single line of code
in  /usr/share/apt-listbugs/debian/bug.rb , see the attached diff),
the issue with
  $ LC_ALL=sv_SE.UTF-8 apt-listbugs list sound-juicer
seems to vanish.
However, I am afraid that this would *not* be a general solution: what
if, for some other bug subject line, the BTS SOAP interface returns a
string which is not UTF-8 encoded? I think that funny characters would
be displayed by apt-listbugs, if it took every subject line as always
encoded in UTF-8... Or am I wrong?
This is the reasoning that made me think the issue is actually in
ruby-soap4r. I hope it may be fixed there in a proper way.


Bye.

#749193#46
Date:
2023-01-13 17:20:31 UTC
From:
To:
Hi,

seems like I was just bitten by this when installing apt-cacher-ng:

# aptitude -u
Performing actions...
Laden der Fehlerberichte … Erledigt
»Found/Fixed«-Informationen werden ausgewertet … Erledigt
serious Fehler von apt-cacher-ng (→ 3.7.4-1+b2) <In einigen Versionen gelöst>
/usr/lib/ruby/vendor_ruby/aptlistbugs/logic.rb:828:in `+': incompatible character encodings: ASCII-8BIT and UTF-8 (Encoding::CompatibilityError)
        from /usr/lib/ruby/vendor_ruby/aptlistbugs/logic.rb:828:in `block (4 levels) in display_bugs'
        from /usr/lib/ruby/vendor_ruby/aptlistbugs/debian/bug.rb:69:in `block in each_by_category'
        from /usr/lib/ruby/vendor_ruby/aptlistbugs/debian/bug.rb:68:in `each'
        from /usr/lib/ruby/vendor_ruby/aptlistbugs/debian/bug.rb:68:in `each_by_category'
        from /usr/lib/ruby/vendor_ruby/aptlistbugs/logic.rb:807:in `block (3 levels) in display_bugs'
        from /usr/lib/ruby/vendor_ruby/aptlistbugs/logic.rb:803:in `each'
        from /usr/lib/ruby/vendor_ruby/aptlistbugs/logic.rb:803:in `block (2 levels) in display_bugs'
        from /usr/lib/ruby/vendor_ruby/aptlistbugs/logic.rb:802:in `each'
        from /usr/lib/ruby/vendor_ruby/aptlistbugs/logic.rb:802:in `block in display_bugs'
        from /usr/lib/ruby/vendor_ruby/aptlistbugs/logic.rb:801:in `each'
        from /usr/lib/ruby/vendor_ruby/aptlistbugs/logic.rb:801:in `display_bugs'
        from /usr/lib/ruby/vendor_ruby/aptlistbugs/logic.rb:451:in `view'
        from /usr/bin/apt-listbugs:626:in `<main>'
E: Unterprozess /usr/bin/apt-listbugs apt hat Fehlercode zurückgegeben (1)
E: Failure running script /usr/bin/apt-listbugs apt
Press Return to continue, 'q' followed by Return to quit.
q
root@fenchel:~# LANG=C.UTF-8 aptitude -u
Performing actions...
Retrieving bug reports... Done
Parsing Found/Fixed information... Done
serious bugs of apt-cacher-ng (→ 3.7.4-1+b2) <Resolved in some Version>
 b1 - #980923 - acngtools eats all the CPU and doesn’t finish daily cron with merged pdiffs (Fixed: apt-cacher-ng/3.6.2-1)
   Merged with: 977611
Summary:
 apt-cacher-ng(1 bug)
Are you sure you want to install/upgrade the above packages? [Y/n/?/...]

#749193#51
Date:
2024-02-10 12:56:16 UTC
From:
To:
Same here on apt upgrade, it stops on wine:



Analyse des informations Trouvé/Corrigé… Fait
bogues de gravité grave sur python3-jedi (0.18.2-1 → 0.19.1+ds-1) <En
attente de traitement>
  b1 - #1063491 - python3-jedi: unvendoring python3-typeshed breaks
other packages
bogues de gravité serious sur adwaita-icon-theme (45.0-2 → 46~beta-1)
<En attente de traitement>
  b2 - #1063640 - adwaita-icon-theme: cursor theme not found
bogues de gravité serious sur fwupd (1.9.11-1 → 1.9.13-1) <En attente de
traitement>
  b3 - #1061731 - fwupd: Failed to load daemon: failed to load engine:
Failed to load config: Key file does not have group “redfish”
bogues de gravité serious sur wine (8.0.2~repack-2 → 9.0~repack-2)
<Résolus dans une version donnée>
/usr/lib/ruby/vendor_ruby/aptlistbugs/logic.rb:842:in `+': incompatible
character encodings: ASCII-8BIT and UTF-8 (Encoding::CompatibilityError)
         from /usr/lib/ruby/vendor_ruby/aptlistbugs/logic.rb:842:in
`block (4 levels) in display_bugs'
         from /usr/lib/ruby/vendor_ruby/aptlistbugs/debian/bug.rb:69:in
`block in each_by_category'
         from /usr/lib/ruby/vendor_ruby/aptlistbugs/debian/bug.rb:68:in
`each'
         from /usr/lib/ruby/vendor_ruby/aptlistbugs/debian/bug.rb:68:in
`each_by_category'
         from /usr/lib/ruby/vendor_ruby/aptlistbugs/logic.rb:821:in
`block (3 levels) in display_bugs'
         from /usr/lib/ruby/vendor_ruby/aptlistbugs/logic.rb:817:in `each'
         from /usr/lib/ruby/vendor_ruby/aptlistbugs/logic.rb:817:in
`block (2 levels) in display_bugs'
         from /usr/lib/ruby/vendor_ruby/aptlistbugs/logic.rb:816:in `each'
         from /usr/lib/ruby/vendor_ruby/aptlistbugs/logic.rb:816:in
`block in display_bugs'
         from /usr/lib/ruby/vendor_ruby/aptlistbugs/logic.rb:815:in `each'
         from /usr/lib/ruby/vendor_ruby/aptlistbugs/logic.rb:815:in
`display_bugs'
         from /usr/lib/ruby/vendor_ruby/aptlistbugs/logic.rb:465:in `view'
         from /usr/bin/apt-listbugs:632:in `<main>'
E: Le sous-processus /usr/bin/apt-listbugs apt a renvoyé un code
d'erreur (1)
E: Failure running script /usr/bin/apt-listbugs apt





Passing LANG=C seems to work around it:

Parsing Found/Fixed information... Done
grave bugs of python3-jedi (0.18.2-1 -> 0.19.1+ds-1) <Outstanding>
  b1 - #1063491 - python3-jedi: unvendoring python3-typeshed breaks
other packages
serious bugs of adwaita-icon-theme (45.0-2 -> 46~beta-1) <Outstanding>
  b2 - #1063640 - adwaita-icon-theme: cursor theme not found
serious bugs of fwupd (1.9.11-1 -> 1.9.13-1) <Outstanding>
  b3 - #1061731 - fwupd: Failed to load daemon: failed to load engine:
Failed to load config: Key file does not have group “redfish”
serious bugs of wine (8.0.2~repack-2 -> 9.0~repack-2) <Resolved in some
Version>
  b4 - #1061655 - wine: FTBFS with error: unknown conversion type
character ‘I’ in format [-Werror=format=] (Fixed: wine/9.0~repack-3)
Summary:
  adwaita-icon-theme(1 bug), fwupd(1 bug), wine(1 bug), python3-jedi(1 bug)




Could it be the UTF-8 single quotes around the I that triggers it?
00000000  e2 80 98 49 e2 80 99 0a                           |...I....|

#749193#56
Date:
2025-12-20 11:54:05 UTC
From:
To:
Another case, #1122404 (```
dynare: FTBFS: Error: ‘b’ at (1) has the CONTIGUOUS attribute but is not an array pointer or an assumed-shape or assumed-rank array
```)

Note that there are, as my Konsole said when I pasted this from the
browser, control symbols there, they are visible in my vim in the line
above right now but may not be visible for you: ```Error: â<80><98>bâ<80><99>```.

`apt-listbugs list gcc-15` fails with "incompatible character encodings:
ASCII-8BIT and UTF-8" but `LANG=C apt-listbugs list gcc-15` exits after
printing the first â:

```
Retrieving bug reports... Done
Parsing Found/Fixed information... Done
serious bugs of gcc-15 (-> ) <Forwarded>
  b1 - #1119850 - netpbm-free: FTBFS on arm* (testsuite error) with gcc-15
serious bugs of gcc-15 (-> ) <Resolved in some Version>
  b2 - #1122404 - dynare: FTBFS: Error: â%
```

(the final % is from zsh, showing that the newline wasn't printed before
exiting)