Bug 2435534 - tesseract crashes in leptonica code on Rawhide (F44) aarch64
Summary: tesseract crashes in leptonica code on Rawhide (F44) aarch64
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: leptonica
Version: rawhide
Hardware: aarch64
OS: Linux
unspecified
urgent
Target Milestone: ---
Assignee: Sandro Mani
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 2435305
TreeView+ depends on / blocked
 
Reported: 2026-01-30 19:58 UTC by Adam Williamson
Modified: 2026-02-11 20:39 UTC (History)
5 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2026-02-09 21:02:56 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
GNU Compiler Collection 123978 0 P1 ASSIGNED [16 Regression] leptonica miscompilation on aarch64 since r16-1398 2026-02-04 17:29:27 UTC
Github DanBloomberg leptonica issues 785 0 None open Leptonica built with current Fedora Rawhide build chain (gcc 16, glibc-2.43) crashes in boxaGetBox on aarch64 2026-01-30 20:00:47 UTC

Description Adam Williamson 2026-01-30 19:58:57 UTC
os-autoinst build for Rawhide fails on aarch64, in the OCR test. I looked into this and it appears to be because the Rawhide build of leptonica is somehow broken. I tested in a Rawhide mock env on an aarch64 system. If I run tesseract, it crashes:

<mock-chroot> sh-5.3# tesseract bootmenu.test.png test
Error in boxaGetBox: index not valid
Error in boxaGetBox: index not valid
Segmentation fault         (core dumped)

If I downgrade leptonica to the F43 build - 1.87.0-1.fc43 - leaving tesseract alone, it works fine. So there's clearly some kind of issue in leptonica when built with the Rawhide toolchain (GCC 16, glibc 2.43 etc.)

I've filed this upstream: https://github.com/DanBloomberg/leptonica/issues/785 . Filing here so downstream maintainer is aware and I can CC some toolchain folks. I'll attach the backtrace.

Comment 1 Adam Williamson 2026-01-30 19:59:31 UTC
Backtrace is pretty short, so I'll just paste it:

#0  0x0000fffff791049c in pixaGenerateFont (pixs=pixs@entry=0xaaaaaab0f3f0, fontsize=fontsize@entry=14, pbl0=pbl0@entry=0xaaaaaab0b738, pbl1=pbl1@entry=0xaaaaaab0b73c, pbl2=pbl2@entry=0xaaaaaab0b740) at /usr/src/debug/leptonica-1.87.0-2.fc44.aarch64/src/bmf.c:634
        i = 0
        j = <optimized out>
        nrows = <optimized out>
        nrowchars = <optimized out>
        nchars = <optimized out>
        h = <optimized out>
        yval = 42
        width = <optimized out>
        height = <optimized out>
        baseline = {42, 65535, 112}
        tab = 0xaaaaaab0c750
        box = 0x0
        box1 = 0x0
        box2 = 0xfffff73de8b4 <_int_free_chunk+84>
        boxar = 0xaaaaaab0f0f0
        boxac = 0xaaaaaab0f700
        boxacs = 0xaaaaaab0f6c0
        pix1 = 0x0
        pix2 = <optimized out>
        pixr = 0xaaaaaab0eeb0
        pixrc = 0xaaaaaab0ec00
        pixc = <optimized out>
        pixa = <optimized out>
        n = <optimized out>
        w = <optimized out>
        inrow = <optimized out>
        top = <optimized out>
        ia = <optimized out>
        na = 0x0
        __func__ = "pixaGenerateFont"
#1  0x0000fffff7910978 in pixaGenerateFontFromString (fontsize=14, pbl0=0xaaaaaab0b738, pbl1=0xaaaaaab0b73c, pbl2=0xaaaaaab0b740) at /usr/src/debug/leptonica-1.87.0-2.fc44.aarch64/src/bmf.c:521
        data = 0xaaaaaab0d8e0 "H\020P\367\377\377"
        redsize = 5
        nbytes = 3680
        pix = 0xaaaaaab0f3f0
        pixa = <optimized out>
        __func__ = <optimized out>
#2  0x0000fffff7910bd8 in pixaGenerateFontFromString (fontsize=<optimized out>, pbl0=<optimized out>, pbl1=<optimized out>, pbl2=<optimized out>) at /usr/src/debug/leptonica-1.87.0-2.fc44.aarch64/src/bmf.c:524
        data = <optimized out>
        redsize = <optimized out>
        nbytes = <optimized out>
        pix = <optimized out>
        pixa = <optimized out>
        __func__ = "pixaGenerateFontFromString"
#3  0x0000fffff7910ff4 in bmfCreate (dir=0x0, fontsize=14) at /usr/src/debug/leptonica-1.87.0-2.fc44.aarch64/src/bmf.c:131
        bmf = 0xaaaaaab0b720
        pixa = <optimized out>
        __func__ = <optimized out>
#4  bmfCreate (dir=0x0, fontsize=14) at /usr/src/debug/leptonica-1.87.0-2.fc44.aarch64/src/bmf.c:118
        bmf = <optimized out>
        pixa = <optimized out>
        __func__ = "bmfCreate"
#5  0x0000fffff7da1388 in tesseract::DebugPixa::DebugPixa (this=0xaaaaaaafa2e8) at /usr/src/debug/tesseract-5.5.2-1.fc44.aarch64/src/ccstruct/debugpixa.h:20
No locals.
#6  tesseract::Tesseract::Tesseract (this=<optimized out>, this=<optimized out>) at /usr/src/debug/tesseract-5.5.2-1.fc44.aarch64/src/ccmain/tesseractclass.cpp:471
No locals.
#7  0x0000fffff7d1ea68 in tesseract::TessBaseAPI::Init (this=this@entry=0xffffffffefe8, data=0xfffff7f14768 "", data@entry=0x0, data_size=data_size@entry=0, language=language@entry=0xaaaaaaaa7600 "eng", oem=oem@entry=tesseract::OEM_DEFAULT, configs=configs@entry=0xfffffffff360, configs_size=configs_size@entry=0, vars_vec=vars_vec@entry=0xffffffffeea8, vars_values=vars_values@entry=0xffffffffee90, set_only_non_debug_params=set_only_non_debug_params@entry=false, reader=reader@entry=0x0) at /usr/src/debug/tesseract-5.5.2-1.fc44.aarch64/src/api/baseapi.cpp:331
        mgr = {data_file_name_ = "", reader_ = 0xfffff7fb6060, is_loaded_ = false, swap_ = false, entries_ = {std::vector of length 2460, capacity 34463096 = {0 '\000', 95 '_', 95 '_', 103 'g', 109 'm', 111 'o', 110 'n', 95 '_', 115 's', 116 't', 97 'a', 114 'r', 116 't', 95 '_', 95 '_', 0 '\000', 95 '_', 73 'I', 84 'T', 77 'M', 95 '_', 100 'd', 101 'e', 114 'r', 101 'e', 103 'g', 105 'i', 115 's', 116 't', 101 'e', 114 'r', 84 'T', 77 'M', 67 'C', 108 'l', 111 'o', 110 'n', 101 'e', 84 'T', 97 'a', 98 'b', 108 'l', 101 'e', 0 '\000', 95 '_', 73 'I', 84 'T', 77 'M', 95 '_', 114 'r', 101 'e', 103 'g', 105 'i', 115 's', 116 't', 101 'e', 114 'r', 84 'T', 77 'M', 67 'C', 108 'l', 111 'o', 110 'n', 101 'e', 84 'T', 97 'a', 98 'b', 108 'l', 101 'e', 0 '\000', 95 '_', 95 '_', 99 'c', 120 'x', 97 'a', 95 '_', 102 'f', 105 'i', 110 'n', 97 'a', 108 'l', 105 'i', 122 'z', 101 'e', 0 '\000', 95 '_', 95 '_', 115 's', 116 't', 97 'a', 99 'c', 107 'k', 95 '_', 99 'c', 104 'h', 107 'k', 95 '_', 103 'g', 117 'u', 97 'a', 114 'r', 100 'd', 0 '\000', 95 '_', 95 '_', 115 's', 116 't', 97 'a', 99 'c', 107 'k', 95 '_', 99 'c', 104 'h', 107 'k', 95 '_', 102 'f', 97 'a', 105 'i', 108 'l', 0 '\000', 95 '_', 95 '_', 109 'm', 101 'e', 109 'm', 109 'm', 111 'o', 118 'v', 101 'e', 95 '_', 99 'c', 104 'h', 107 'k', 0 '\000', 109 'm', 97 'a', 108 'l', 108 'l', 111 'o', 99 'c', 0 '\000', 109 'm', 101 'e', 109 'm', 99 'c', 112 'p', 121 'y', 0 '\000', 109 'm', 101 'e', 109 'm', 115 's', 101 'e', 116 't', 0 '\000', 102 'f', 114 'r', 101 'e', 101 'e', 0 '\000', 109 'm', 101 'e', 109 'm', 109 'm', 111 'o', 118 'v', 101 'e', 0 '\000', 95 '_', 95 '_', 109 'm', 101 'e', 109 'm', 99 'c', 112 'p', 121 'y', 95 '_', 99 'c', 104 'h', 107 'k', 0 '\000', 112 'p', 99 'c', 114 'r', 101 'e', 50 '2', 95 '_', 99 'c', 111 'o', 100 'd', 101 'e', 95 '_', 99 'c', 111 'o', 112 'p', 121 'y', 95 '_', 56 '8', 0 '\000', 112 'p'...}, std::vector of length 0, capacity 0 = {80 'P', 235 '\353', 255 '\377', 255 '\377', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 48 '0', 136 '\210', 252 '\374', 247 '\367', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 0 '\000', 224 '\340', 255 '\377', 247 '\367', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 0 '\000', 32 ' ', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 176 '\260', 235 '\353', 255 '\377', 255 '\377', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 208 '\320', 115 's', 252 '\374', 247 '\367', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 0 '\000', 208 '\320', 255 '\377', 247 '\367', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 0 '\000', 80 'P', 204 '\314', 247 '\367', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 208 '\320', 235 '\353', 255 '\377', 255 '\377', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 208 '\320', 115 's', 252 '\374', 247 '\367', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 0 '\000', 208 '\320', 255 '\377', 247 '\367', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 116 't', 228 '\344', 251 '\373', 247 '\367', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 22 '\026', 233 '\351', 251 '\373', 247 '\367', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 160 '\240', 117 'u', 252 '\374', 247 '\367', 16 '\020', 0 '\000', 0 '\000', 0 '\000', 32 ' ', 16 '\020', 255 '\377', 247 '\367', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 128 '\200', 126 '~', 251 '\373', 247 '\367', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 48 '0', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 2 '\002', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 237 '\355', 255 '\377', 247 '\367', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 152 '\230', 236 '\354', 255 '\377', 255 '\377', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 148 '\224', 236 '\354', 255 '\377', 255 '\377', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 144 '\220', 238 '\356', 255 '\377', 255 '\377', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 192 '\300', 236 '\354', 255 '\377', 255 '\377', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 132 '\204', 123 '{', 252 '\374', 247 '\367', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000'...}, std::vector of length 219088, capacity -281474842257456 = {227 '\343', 31 '\037', 64 '@', 249 '\371', 97 'a', 194 '\302', 48 '0', 145 '\221', 96 '`', 26 '\032', 70 'F', 249 '\371', 226 '\342', 3 '\003', 3 '\003', 170 '\252', 31 '\037', 0 '\000', 3 '\003', 235 '\353', 192 '\300', 2 '\002', 0 '\000', 84 'T', 99 'c', 0 '\000', 20 '\024', 139 '\213', 99 'c', 26 '\032', 6 '\006', 249 '\371', 67 'C', 0 '\000', 21 '\025', 139 '\213', 245 '\365', 19 '\023', 64 '@', 249 '\371', 115 's', 194 '\302', 48 '0', 145 '\221', 224 '\340', 3 '\003', 2 '\002', 170 '\252', 99 'c', 138 '\212', 0 '\000', 169 '\251', 243 '\363', 83 'S', 65 'A', 169 '\251', 253 '\375', 123 '{', 196 '\304', 168 '\250', 191 '\277', 35 '#', 3 '\003', 213 '\325', 192 '\300', 3 '\003', 95 '_', 214 '\326', 161 '\241', 1 '\001', 0 '\000', 176 '\260', 162 '\242', 1 '\001', 0 '\000', 240 '\360', 66 'B', 0 '\000', 13 '\r', 145 '\221', 35 '#', 80 'P', 70 'F', 249 '\371', 97 'a', 0 '\000', 2 '\002', 139 '\213', 227 '\343', 3 '\003', 3 '\003', 203 '\313', 33 '!', 4 '\004', 0 '\000', 209 '\321', 33 '!', 0 '\000', 3 '\003', 138 '\212', 97 'a', 26 '\032', 6 '\006', 249 '\371', 195 '\303', 255 '\377', 255 '\377', 23 '\027', 34 '"', 4 '\004', 64 '@', 249 '\371', 99 'c', 0 '\000', 20 '\024', 139 '\213', 99 'c', 26 '\032', 6 '\006', 249 '\371', 67 'C', 0 '\000', 21 '\025', 139 '\213', 245 '\365', 19 '\023', 64 '@', 249 '\371', 234 '\352', 255 '\377', 255 '\377', 23 '\027', 245 '\365', 19 '\023', 64 '@', 249 '\371', 2 '\002', 0 '\000', 128 '\200', 210 '\322', 243 '\363', 83 'S', 65 'A', 169 '\251', 224 '\340', 3 '\003', 2 '\002', 170 '\252', 253 '\375', 123 '{', 196 '\304', 168 '\250', 191 '\277', 35 '#', 3 '\003', 213 '\325', 192 '\300', 3 '\003', 95 '_', 214 '\326', 63 '?', 35 '#', 3 '\003', 213 '\325', 253 '\375', 123 '{', 191 '\277', 169 '\251', 4 '\004', 0 '\000', 1 '\001', 170 '\252', 63 '?', 0 '\000', 0 '\000', 241 '\361', 253 '\375', 3 '\003', 0 '\000', 145 '\221', 227 '\343', 127 '\177', 64 '@', 178 '\262', 2 '\002', 124 '|', 1 '\001', 155 '\233', 128 '\200', 16 '\020', 67 'C', 250 '\372', 232 '\350', 0 '\000', 0 '\000', 84 'T', 253 '\375', 123 '{', 193 '\301', 168 '\250'...}, std::vector of length 0, capacity 0 = {0 '\000', 237 '\355', 255 '\377', 247 '\367', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 152 '\230', 236 '\354', 255 '\377', 255 '\377', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 148 '\224', 236 '\354', 255 '\377', 255 '\377', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 144 '\220', 238 '\356', 255 '\377', 255 '\377', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 192 '\300', 236 '\354', 255 '\377', 255 '\377', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 132 '\204', 123 '{', 252 '\374', 247 '\367', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 176 '\260', 238 '\356', 255 '\377', 255 '\377', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 9 '\t', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 22 '\026', 233 '\351', 251 '\373', 247 '\367', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 112 'p', 236 '\354', 255 '\377', 255 '\377', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 208 '\320', 115 's', 252 '\374', 247 '\367', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 0 '\000', 208 '\320', 255 '\377', 247 '\367', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 144 '\220', 123 '{', 52 '4', 247 '\367', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 128 '\200', 16 '\020', 254 '\376', 247 '\367', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 232 '\350', 246 '\366', 255 '\377', 247 '\367', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 136 '\210', 229 '\345', 251 '\373', 247 '\367', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 192 '\300', 123 '{', 251 '\373', 247 '\367', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 48 '0', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 2 '\002', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 240 '\360', 254 '\376', 247 '\367', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 56 '8', 237 '\355', 255 '\377', 255 '\377', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 52 '4', 237 '\355', 255 '\377', 255 '\377', 255 '\377', 255 '\377', 0 '\000', 0 '\000', 46 '.', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 96 '`', 237 '\355', 255 '\377', 255 '\377', 255 '\377', 255 '\377', 0 '\000', 0 '\000'...}, std::vector of length 137599952, capacity 3154896 = {27 '\033', 201 '\311', 22 '\026', 136 '\210', 37 '%', 103 'g', 252 '\374', 221 '\335', 100 'd', 159 '\237', 210 '\322', 133 '\205', 59 ';', 66 'B', 172 '\254', 167 '\247', 3 '\003', 57 '9', 129 '\201', 245 '\365', 21 '\025', 208 '\320', 240 '\360', 118 'v', 155 '\233', 120 'x', 29 '\035', 107 'k', 94 '^', 98 'b', 175 '\257', 28 '\034', 207 '\317', 65 'A', 43 '+', 126 '~', 193 '\301', 55 '7', 65 'A', 228 '\344', 218 '\332', 163 '\243', 227 '\343', 231 '\347', 219 '\333', 205 '\315', 201 '\311', 164 '\244', 44 ',', 216 '\330', 4 '\004', 233 '\351', 157 '\235', 37 '%', 170 '\252', 114 'r', 59 ';', 146 '\222', 63 '?', 178 '\262', 10 '\n', 253 '\375', 29 '\035', 76 'L', 159 '\237', 155 '\233', 150 '\226', 170 '\252', 65 'A', 172 '\254', 224 '\340', 20 '\024', 211 '\323', 187 '\273', 242 '\362', 50 '2', 228 '\344', 227 '\343', 160 '\240', 1 '\001', 17 '\021', 208 '\320', 35 '#', 16 '\020', 39 '\'', 36 '$', 156 '\234', 157 '\235', 71 'G', 167 '\247', 157 '\235', 213 '\325', 178 '\262', 64 '@', 6 '\006', 234 '\352', 62 '>', 77 'M', 177 '\261', 147 '\223', 133 '\205', 199 '\307', 198 '\306', 155 '\233', 27 '\033', 34 '"', 98 'b', 90 'Z', 125 '}', 134 '\206', 120 'x', 53 '5', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 3 '\003', 0 '\000', 10 '\n', 0 '\000', 96 '`', 172 '\254', 4 '\004', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 3 '\003', 0 '\000', 25 '\031', 0 '\000', 0 '\000', 0 '\000', 47 '/', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 217 '\331', 15 '\017', 0 '\000', 0 '\000', 18 '\022', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000'...}, std::vector of length 0, capacity 0 = {0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 50 '2', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 255 '\377', 255 '\377', 255 '\377', 127 '\177', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 16 '\020', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 16 '\020', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 103 'g', 108 'l', 105 'i', 98 'b', 99 'c', 46 '.', 103 'g', 109 'm', 111 'o', 110 'n', 46 '.', 109 'm', 105 'i', 110 'n', 97 'a', 114 'r', 99 'c', 115 's', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 50 '2', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 255 '\377', 255 '\377', 255 '\377', 127 '\177', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 50 '2', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 50 '2', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000', 0 '\000'...}, std::vector of length 281401962437248, capacity 281401962203360 = {<error reading variable: Cannot access memory at address 0x10f7fc75a0>}
        datapath = ""
        reset_classifier = false
#8  0x0000fffff7d1eedc in tesseract::TessBaseAPI::Init (this=this@entry=0xffffffffefe8, datapath=datapath@entry=0x0, language=language@entry=0xaaaaaaaa7600 "eng", oem=oem@entry=tesseract::OEM_DEFAULT, configs=configs@entry=0xfffffffff360, configs_size=configs_size@entry=0, vars_vec=vars_vec@entry=0xffffffffeea8, vars_values=vars_values@entry=0xffffffffee90, set_only_non_debug_params=set_only_non_debug_params@entry=false) at /usr/src/debug/tesseract-5.5.2-1.fc44.aarch64/src/api/baseapi.cpp:299
No locals.
#9  0x0000aaaaaaaa51a0 in main1 (argc=3, argv=<optimized out>) at /usr/src/debug/tesseract-5.5.2-1.fc44.aarch64/src/tesseract.cpp:719
        lang = 0xaaaaaaaa7600 "eng"
        image = <optimized out>
        outputbase = <optimized out>
        datapath = <optimized out>
        list_langs = <optimized out>
        print_parameters = <optimized out>
        print_fonts_table = <optimized out>
        dpi = <optimized out>
        arg_i = <optimized out>
        pagesegmode = <optimized out>
        enginemode = <optimized out>
        vars_vec = std::vector of length 0, capacity 0
        vars_values = std::vector of length 0, capacity 0
        in_recognition_mode = <optimized out>
        api = {_vptr.TessBaseAPI = 0xfffff7faa480 <vtable for tesseract::TessBaseAPI+16>, tesseract_ = 0x0, osd_tesseract_ = 0x0, equ_detect_ = 0x0, reader_ = 0x0, thresholder_ = 0x0, paragraph_models_ = 0x0, block_list_ = 0x0, page_res_ = 0x0, input_file_ = "", output_file_ = "test", datapath_ = "", language_ = "", last_oem_requested_ = tesseract::OEM_DEFAULT, recognition_done_ = false, rect_left_ = 0, rect_top_ = 0, rect_width_ = 0, rect_height_ = 0, image_width_ = 0, image_height_ = 0}
        init_failed = <optimized out>
        ret_val = <optimized out>
        b = 255
        in_training_mode = <optimized out>
        renderers = <optimized out>
#10 0x0000aaaaaaaa2e10 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/tesseract-5.5.2-1.fc44.aarch64/src/tesseract.cpp:858
No locals.

Comment 2 Jakub Jelinek 2026-02-04 17:29:28 UTC
Seems pixClearAll and pixSetAll functions in leptonica-1.87.0/src/pix2.c are miscompiled by GCC 16 snapshots.
I'll note that
    memset(pix->data, 0, 4LL * pix->wpl * pix->h);
and
    memset(pix->data, 0xff, 4LL * pix->wpl * pix->h);
are really weird, I'd have expected sizeof(pix->data[0]) instead of 4LL.  As a workaround, 4ULL or (size_t)4 will work fine too.

Comment 3 Sandro Mani 2026-02-09 18:50:46 UTC
I see the leptonica upstream workaround/fix was backported to leptonica-1.87.0-3.fc44. Can this be closed?

Comment 4 Adam Williamson 2026-02-09 21:02:43 UTC
Well, *this* can, but it looks like there's still a failure in the os-autoinst OCR test suite on aarch64:

2: [20:45:09] t/02-test_ocr.t ............................. 
2: ok 1 - log output for needle init
2: ok 2 - ocr match 1
2: ok 3 - OCR area found
2: not ok 4 - multiple OCR regions
2: 1..4
2: 
2: #   Failed test 'multiple OCR regions'
2: #   at t/02-test_ocr.t line 45.
2: # Looks like you failed 1 test of 4.
2: Dubious, test returned 1 (wstat 256, 0x100)

so there's likely still another more subtle issue :( I'll find some time to look into it once I can stop Rawhide and F44 openQA tests being on fire.

Comment 5 Jakub Jelinek 2026-02-11 20:39:48 UTC
Note, gcc-16.0.1-0.7.fc45 should have the bug fixes as well.


Note You need to log in before you can comment on or make changes to this bug.