Project

General

Profile

Actions

tickets #181934

open

Redmine ImageMagick broken primitives / character handling?

Added by crameleon 6 days ago. Updated 5 days ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
Redmine
Target version:
-
Start date:
2025-05-07
Due date:
% Done:

0%

Estimated time:

Description

I observe some of these:

F, [2025-05-07T10:06:39.798133 #16232] FATAL -- : [30d135a7-2c96-49bc-8993-11a14ae39c04]
[30d135a7-2c96-49bc-8993-11a14ae39c04] MiniMagick::Error (`magick -size 1133x1246 xc:white -stroke transparent -fill black -stroke transparent -strokewidth 1 -draw text 4,58 'QA (public)' -fill black -stroke transparent -strokewidth 1 -draw text 24,78 'openQA Project (public) - Ready' -fill black -stroke transparen
t -strokewidth 1 -draw text 44,98 '[tools] openSUSE conference 2025 contributions size:S' -fill black -stroke transparent -strokewidth 1 -draw text 44,118 'Select proper non-CC network for obs-cpan-mirror VM on op-prg2 harvester size:S' -fill black -stroke transparent -strokewidth 1 -draw text 44,138 'devel:languag
es:perl Module version normalizing size:M' -fill black -stroke transparent -strokewidth 1 -draw text 44,158 'Move devel:languages:perl to Git size:M' -fill black -stroke transparent -strokewidth 1 -draw text 44,178 '[spike][timeboxed:20h] qem-bot+qem-dashboard reading from/writing to gitea instead of smelt/IBS size
:M' -fill black -stroke transparent -strokewidth 1 -draw text 24,198 'openQA Project (public)' -fill black -stroke transparent -strokewidth 1 -draw text 44,218 'openQA Project (public) - Ready' -fill black -stroke transparent -strokewidth 1 -draw text 64,238 '[spike][timeboxed:11h] Re-consider openQA-in-openQA OBS/
Jenkins setup for staged packages size:S' -fill black -stroke transparent -strokewidth 1 -draw text 64,258 'A single API route to show all not-ok tests blocking a SLE maintenance incident size:M' -fill black -stroke transparent -strokewidth 1 -draw text 64,278 '[spike][timeboxed:10h] openQA webUI search view to sho
w all tests blocking an incident by squad - take 2 size:S' -fill black -stroke transparent -strokewidth 1 -draw text 64,298 '[easy][beginner] Changing filters on /tests/overview queries having multiple flavors selected looses all flavors but one size:S' -fill black -stroke transparent -strokewidth 1 -draw text 64,3
18 'Proper release with current content for https://github.com/openSUSE/Mojo-IOLoop-ReadWriteProcess/ size:S' -fill black -stroke transparent -strokewidth 1 -draw text 64,338 'Link to minion job from openQA job with waiting task size:S' -fill black -stroke transparent -strokewidth 1 -draw text 64,358 '[o3][alert] o
penQA in openQA tests failing due to missing .git/config' -fill black -stroke transparent -strokewidth 1 -draw text 64,378 'Needle saving in editor broken if git features are disabled' -fill black -stroke transparent -strokewidth 1 -draw text 64,398 'Support https://github.com/os-autoinst/openQA/pull/6430' -fill bl
ack -stroke transparent -strokewidth 1 -draw text 64,418 '[easy][beginner] Run investigation hook_script minion jobs with linear backoff size:S' -fill black -stroke transparent -strokewidth 1 -draw text 64,438 'Automatic cleanup of kvm assets produced by the s390x kvm backend (svirt) in os-autoinst size:S' -fill bl
ack -stroke transparent -strokewidth 1 -draw text 64,458 'Refined use of team-qa-tools Slack channel for automatic notifications - "Unreview issue" Slack messages size:S' -fill black -stroke transparent -strokewidth 1 -draw text 64,478 'Limit connected online workers based on websocket+scheduler load size:M' -fill
black -stroke transparent -strokewidth 1 -draw text 64,498 '[saga][epic] openQA for SUSE customers' -fill black -stroke transparent -strokewidth 1 -draw text 84,518 'os-autoinst on SLE+packagehub size:M' -fill black -stroke transparent -strokewidth 1 -draw text 84,538 'perlcritic openQA - Check more than just lib/
and use Perl::Critic::TooMuchCode' -fill black -stroke transparent -strokewidth 1 -draw text 84,558 '[openQA][CI] Prevent unhandled output in prove test calls with automatic checks in other project' -fill black -stroke transparent -strokewidth 1 -draw text 64,578 'Gracious handling of longer remote git clones outag
es size:S' -fill black -stroke transparent -strokewidth 1 -draw text 64,598 'Make more (short) openQA video tutorials size:S' -fill black -stroke transparent -strokewidth 1 -draw text 64,618 'Reload of openqa-webui triggers 5xx responses' -fill black -stroke transparent -strokewidth 1 -draw text 64,638 '[spike][tim
eboxed:20h] Automated reviewer triggering openQA tests and feeding back openQA test results for https://src.suse.de/TEST_SLFO/mini-SLFO/pulls/10 size:M' -fill black -stroke transparent -strokewidth 1 -draw text 64,658 'openqa-investigate leaves temporary job comments "Starting investigation for job ..." size:S' -fi
ll black -stroke transparent -strokewidth 1 -draw text 64,678 '[sporadic] [openqa-in-openqa] auto_review:"Test died: no candidate needle with.*openqa-dashboard":retry due to Firefox Popup' -fill black -stroke transparent -strokewidth 1 -draw text 64,698 'openQA: script dump / load issues: loading job templates is b
roken' -fill black -stroke transparent -strokewidth 1 -draw text 44,718 'openQA Infrastructure (public)' -fill black -stroke transparent -strokewidth 1 -draw text 64,738 'openQA Project (public) - Ready' -fill black -stroke transparent -strokewidth 1 -draw text 84,758 '[alert] partitions usage (%) alert openQA for
osd worker31 size:S' -fill black -stroke transparent -strokewidth 1 -draw text 84,778 '[osd][alert] i915 worker instance not working on jobs since weeks (was: "Job age (scheduled) (max) alert possibly due to workers exceeding the configured load threshold") size:S' -fill black -stroke transparent -strokewidth 1 -dr
aw text 84,798 'monitor.qe.nue2.suse.org not responding to salt size:S' -fill black -stroke transparent -strokewidth 1 -draw text 84,818 'Try to install and connect a SUSE managed Power 10 LPAR to o3 and use it as (qemu) worker size:S' -fill black -stroke transparent -strokewidth 1 -draw text 84,838 'Setup VIOS on
paraffin (S/N 7882391) size:M' -fill black -stroke transparent -strokewidth 1 -draw text 84,858 'jenkins doesn\'t notify us on broken builds/runs - should there be e-mails or such? size:S' -fill black -stroke transparent -strokewidth 1 -draw text 84,878 'Proper kvm asset cleanup for s390x kvm backend (svirt) and te
sts size:S' -fill black -stroke transparent -strokewidth 1 -draw text 84,898 'Upgrade Power8 o3 workers to openSUSE Leap 15.6 - qa-power8-3 size:S' -fill black -stroke transparent -strokewidth 1 -draw text 84,918 'backup-vm cannot reach OSD via ssh' -fill black -stroke transparent -strokewidth 1 -draw text 84,938 '
[alert] Cron <root@openqa-service> (date; fetch_openqa_bugs) openqa.suse.de No route to host' -fill black -stroke transparent -strokewidth 1 -draw text 84,958 'systemd service+timer for cleanup of OSD database dumps instead of cron size:S' -fill black -stroke transparent -strokewidth 1 -draw text 84,978 'osd-deploy
ment | Failed pipeline for master (worker35.oqa.prg2.suse.org and monitor.qe.nue2.suse.org)' -fill black -stroke transparent -strokewidth 1 -draw text 84,998 'o3: Cron <munin@ariel> test -x /usr/bin/munin-cron && /usr/bin/munin-cron size:S' -fill black -stroke transparent -strokewidth 1 -draw text 84,1018 'Finish f
undamental setup for orion to serve as a vmware 7 server in OSD size:S' -fill black -stroke transparent -strokewidth 1 -draw text 84,1038 'Many minion failures related to obs_rsync_run due to SLFO submissions size:S' -fill black -stroke transparent -strokewidth 1 -draw text 84,1058 '[openQA][worker][ipmi] ipmi jobs
 are stuck in tear-down and run into MAX_JOB_TIME (was: It takes an extremely long time to finish the job when connected to an ipmi worker) size:S' -fill black -stroke transparent -strokewidth 1 -draw text 84,1078 '[alert] fetch_openqa_bugs connection issue size:S' -fill black -stroke transparent -strokewidth 1 -dr
aw text 84,1098 '"QE Tools backlog - stacked" panel does not show data since 2025-04-08T12:00:00Z size:S' -fill black -stroke transparent -strokewidth 1 -draw text 84,1118 'Fix HDD issue on kerosene.qe.nue2.suse.org size:S' -fill black -stroke transparent -strokewidth 1 -draw text 84,1138 'worker35.oqa.prg2.suse.or
g does not respond over salt "Minion did not return. [Not connected]" size:S' -fill black -stroke transparent -strokewidth 1 -draw text 44,1158 'openQA Tests (public)' -fill black -stroke transparent -strokewidth 1 -draw text 64,1178 'openQA Project (public) - Ready' -fill black -stroke transparent -strokewidth 1 -
draw text 84,1198 '[openQA][media][iso][query] How to use mounted ISO image ' -fill black -stroke transparent -strokewidth 1 -draw text 84,1218 '[tools][qe-core]test fails in openqa_bootstrap on leap15.6 size:S' -fill white -stroke grey -strokewidth 1 -draw rectangle 400,0 520,1246 -fill black -stroke transparent -
strokewidth 1 -draw text 408,14 '2028-4' -fill white -stroke grey -strokewidth 1 -draw rectangle 520,0 644,1246 -fill black -stroke transparent -strokewidth 1 -draw text 528,14 '2028-5' -fill white -stroke grey -strokewidth 1 -draw rectangle 644,0 764,1246 -fill black -stroke transparent -strokewidth 1 -draw text 6
52,14 '2028-6' -fill white -stroke grey -strokewidth 1 -draw rectangle 764,0 888,1246 -fill black -stroke transparent -strokewidth 1 -draw text 772,14 '2028-7' -fill white -stroke grey -strokewidth 1 -draw rectangle 888,0 1012,1246 -fill black -stroke transparent -strokewidth 1 -draw text 896,14 '2028-8' -fill whit
e -stroke grey -strokewidth 1 -draw rectangle 1012,0 1132,1246 -fill black -stroke transparent -strokewidth 1 -draw text 1020,14 '2028-9' -fill white -stroke grey -strokewidth 1 -draw rectangle 400,18 408,1245 -fill white -stroke grey -strokewidth 1 -draw rectangle 408,18 436,1245 -fill black -stroke transparent -s
trokewidth 1 -draw text 410,32 '14' -fill white -stroke grey -strokewidth 1 -draw rectangle 436,18 464,1245 -fill black -stroke transparent -strokewidth 1 -draw text 438,32 '15' -fill white -stroke grey -strokewidth 1 -draw rectangle 464,18 492,1245 -fill black -stroke transparent -strokewidth 1 -draw text 466,32 '
16' -fill white -stroke grey -strokewidth 1 -draw rectangle 492,18 520,1245 -fill black -stroke transparent -strokewidth 1 -draw text 494,32 '17' -fill white -stroke grey -strokewidth 1 -draw rectangle 520,18 548,1245 -fill black -stroke transparent -strokewidth 1 -draw text 522,32 '18' -fill white -stroke grey -st
rokewidth 1 -draw rectangle 548,18 576,1245 -fill black -stroke transparent -strokewidth 1 -draw text 550,32 '19' -fill white -stroke grey -strokewidth 1 -draw rectangle 576,18 604,1245 -fill black -stroke transparent -strokewidth 1 -draw text 578,32 '20' -fill white -stroke grey -strokewidth 1 -draw rectangle 604,
18 632,1245 -fill black -stroke transparent -strokewidth 1 -draw text 606,32 '21' -fill white -stroke grey -strokewidth 1 -draw rectangle 632,18 660,1245 -fill black -stroke transparent -strokewidth 1 -draw text 634,32 '22' -fill white -stroke grey -strokewidth 1 -draw rectangle 660,18 688,1245 -fill black -stroke
transparent -strokewidth 1 -draw text 662,32 '23' -fill white -stroke grey -strokewidth 1 -draw rectangle 688,18 716,1245 -fill black -stroke transparent -strokewidth 1 -draw text 690,32 '24' -fill white -stroke grey -strokewidth 1 -draw rectangle 716,18 744,1245 -fill black -stroke transparent -strokewidth 1 -draw
 text 718,32 '25' -fill white -stroke grey -strokewidth 1 -draw rectangle 744,18 772,1245 -fill black -stroke transparent -strokewidth 1 -draw text 746,32 '26' -fill white -stroke grey -strokewidth 1 -draw rectangle 772,18 800,1245 -fill black -stroke transparent -strokewidth 1 -draw text 774,32 '27' -fill white -s
troke grey -strokewidth 1 -draw rectangle 800,18 828,1245 -fill black -stroke transparent -strokewidth 1 -draw text 802,32 '28' -fill white -stroke grey -strokewidth 1 -draw rectangle 828,18 856,1245 -fill black -stroke transparent -strokewidth 1 -draw text 830,32 '29' -fill white -stroke grey -strokewidth 1 -draw
rectangle 856,18 884,1245 -fill black -stroke transparent -strokewidth 1 -draw text 858,32 '30' -fill white -stroke grey -strokewidth 1 -draw rectangle 884,18 912,1245 -fill black -stroke transparent -strokewidth 1 -draw text 886,32 '31' -fill white -stroke grey -strokewidth 1 -draw rectangle 912,18 940,1245 -fill
black -stroke transparent -strokewidth 1 -draw text 914,32 '32' -fill white -stroke grey -strokewidth 1 -draw rectangle 940,18 968,1245 -fill black -stroke transparent -strokewidth 1 -draw text 942,32 '33' -fill white -stroke grey -strokewidth 1 -draw rectangle 968,18 996,1245 -fill black -stroke transparent -strok
ewidth 1 -draw text 970,32 '34' -fill white -stroke grey -strokewidth 1 -draw rectangle 996,18 1024,1245 -fill black -stroke transparent -strokewidth 1 -draw text 998,32 '35' -fill white -stroke grey -strokewidth 1 -draw rectangle 1024,18 1052,1245 -fill black -stroke transparent -strokewidth 1 -draw text 1026,32 '
36' -fill white -stroke grey -strokewidth 1 -draw rectangle 1052,18 1080,1245 -fill black -stroke transparent -strokewidth 1 -draw text 1054,32 '37' -fill white -stroke grey -strokewidth 1 -draw rectangle 1080,18 1108,1245 -fill black -stroke transparent -strokewidth 1 -draw text 1082,32 '38' -fill white -stroke gr
ey -strokewidth 1 -draw rectangle 1108,18 1132,1245 -fill black -stroke transparent -strokewidth 1 -draw text 1110,32 '39' -fill transparent -stroke grey -strokewidth 1 -draw rectangle 0,0 1132,36 -stroke black -draw rectangle 0,0 1132,1245 -stroke transparent -fill black -draw text 405,57 'QA (public)' -fill black
 -draw text 405,177 'Blocked 0%' -fill black -draw text 405,197 'openQA Project (public)' -fill black -draw text 405,417 'In Progress 0%' -fill black -draw text 405,617 'In Progress 0%' -fill black -draw text 405,657 'Feedback 0%' -fill black -draw text 405,717 'openQA Infrastructure (public)' -fill black -draw tex
t 405,837 'In Progress 0%' -fill black -draw text 405,877 'In Progress 0%' -fill black -draw text 405,1057 'Feedback 0%' -fill black -draw text 405,1117 'In Progress 0%' -fill black -draw text 405,1157 'openQA Tests (public)' -fill black -draw text 405,1217 'Blocked 0%' /tmp/mini_magick20250507-16232-pq0kml.png` fa
iled with status: 1 and error:
magick: unknown image property "%)" @ warning/property.c/InterpretImageProperties/3879.
magick: non-conforming drawing primitive definition `t' @ error/draw.c/RenderMVGContent/4520.
):
[30d135a7-2c96-49bc-8993-11a14ae39c04]
[30d135a7-2c96-49bc-8993-11a14ae39c04] lib/redmine/helpers/gantt.rb:401:in `to_image'
[30d135a7-2c96-49bc-8993-11a14ae39c04] app/controllers/gantts_controller.rb:46:in `block (2 levels) in show'
[30d135a7-2c96-49bc-8993-11a14ae39c04] app/controllers/gantts_controller.rb:42:in `show'
[30d135a7-2c96-49bc-8993-11a14ae39c04] lib/redmine/sudo_mode.rb:78:in `sudo_mode'

It seems to not process

partitions usage (%) alert openQA for

correctly?

There are also some errors with "just"

magick: non-conforming drawing primitive definition `OVS' @ error/draw.c/RenderMVGContent/4520.
):
[2db201d8-db19-4f3c-b7ba-2b39d683d359]
[2db201d8-db19-4f3c-b7ba-2b39d683d359] lib/redmine/helpers/gantt.rb:401:in `to_image'
[2db201d8-db19-4f3c-b7ba-2b39d683d359] app/controllers/gantts_controller.rb:46:in `block (2 levels) in show'
[2db201d8-db19-4f3c-b7ba-2b39d683d359] app/controllers/gantts_controller.rb:42:in `show'
[2db201d8-db19-4f3c-b7ba-2b39d683d359] lib/redmine/sudo_mode.rb:78:in `sudo_mode'
F, [2025-05-07T10:10:32.262971 #10141] FATAL -- : [ddeebd6a-008f-443f-83ae-a4c6304a83a2]

though, which make less sense.

Actions #1

Updated by crameleon 6 days ago

  • Private changed from Yes to No

This matches https://www.redmine.org/issues/34046 which should have been solved via https://www.redmine.org/issues/38728 (and this patch is also included in the release we use), but seemingly the escaping regex does not catch everything.

Actions #2

Updated by crameleon 6 days ago ยท Edited

It seems this primarily (or even only?) affects the Gantt view of the "QA (public)" project. It also seems that these errors cause quite some load on the server. I will block access to https://progress.opensuse.org/projects/qa/issues/gantt until I can reproduce and solve this locally.

Edit: seems other projects are affected too, but with less obvious escaping problems (the percent sign in the QA project seems simple enough, s/%/%%/).

Actions #3

Updated by crameleon 5 days ago

Even though I blocked ^/projects/.*/issues/gantt and confirmed neither the Gantt view nor the /gantt.png export are reachable anymore, the logs continued to fill up with these errors. I couldn't find what else would trigger this logic. To stop the havoc (the disk was filling up very rapidly) I now added this ugly patch

--- /tmp/gantts_controller.rb   2025-05-07 13:09:59.255109139 +0000
+++ app/controllers/gantts_controller.rb        2025-05-07 13:04:35.828147011 +0000
@@ -46,3 +46,4 @@
-          send_data(@gantt.to_image,
-                    :disposition => 'inline', :type => 'image/png',
-                    :filename => "#{basename}.png")
+          send_data("Sorry, but the PNG export is currently broken and hence disabled. :-(")
+          #send_data(@gantt.to_image,
+          #          :disposition => 'inline', :type => 'image/png',
+          #          :filename => "#{basename}.png")

which basically returns a PNG which is not really a PNG but just the informational line of text (in addition to the transient path blockage). This stopped the Magick errors for now.

Actions

Also available in: Atom PDF