• Bug#1101839: python3-tqdm: segmentation fault in destructor method

    From Emmanuel Arias@21:1/5 to All on Wed Jul 16 07:40:01 2025
    Hi,

    Thanks. fyi I reproduced the bug. Now trying to figure out it. Thanks
    for the confirmation.

    --
    cheers,
    Emmanuel Arias

    ⢀⣴⠾⠻⢶⣦⠀
    ⣾⠁⢠⠒⠀⣿⡁ eamanu@debian.org
    ⢿⡄⠘⠷⠚⠋⠀ OpenPGP: 13796755BBC72BB8ABE2AEB5 FA9DEC5DE11C63F1
    ⠈⠳⣄

    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCgAdFiEEE3lnVbvHK7ir4q61+p3sXeEcY/EFAmh3Og4ACgkQ+p3sXeEc Y/Hdpg/+IfiecvGRV1xTbXWZ25hA90eL4sI6Dqik7JAI9XRqGGMMAjrlmks7VZXV JOj2e2yh4cvS9FQ4R7QXFfuVsDVhwQ1YqpdpJqD4pzEsa6vG+8oD5fYzZS9ZyZlB qDI1TZxHP8Wyh1QdDhkoeRptVuLneYDFHmM4lt98HkyJwh72U9osMM+v4S7XjaTR UYNipjO9DI2zOg5ZPa6llyhpNYK4c2BuPX8Dk+hTCk2cCJT/d7E3gX0O/ELKxqi2 AHXMTKafc45h6+yqyK7Wxvc5AdUNn6554LLylZQ12tj6iiZzHHkInqdJmg4mm3pl QweSE9UBHxWCAB97IcJpMwY5kRrHmboIrukf7UFOnUgXjyLRw3f4VPP9MQZLCIp1 3qmjSE05aXEyeWozML4v8+TaZJuMosuH2ACJTfXX4whIiW8ZK7MfSJCrJX1VJ28E xYuJO+D2qbt4RgALoJJMPkM64UQkvmtAMXgQL3RkmT4o961DpZTUVGODaaOqBbP6 ZGxPC5xFQBtI4b0RD9ItNBQJ5i7ttM53tt5FA5r8vdHmZvuW+hcd2X/I6RK7dnEp sulnz0UEvP/hfp9LnM0I2C2XyAuPxvusOSNsKw1DMSzt/59Z7DoS47srgXOIhBEs xm18kAJTF26neUMqpgzwlsol/Wxs4FC2Q3DvLZKDBqbnLqc
  • From Emmanuel Arias@21:1/5 to All on Sat Jul 19 01:50:01 2025
    Hi,

    Well, I couldn't figure out why it's happening, but I managed to isolate
    it.

    To reproduce the bug, we can run only

    nxtomomill/converter/edf/tests/test_edf2nx.py::test_edf_to_nx_converter

    IMO the issue is in the pytest.mark.parametrize call

    @pytest.mark.parametrize("progress", (None, tqdm(desc="conversion from edf")))

    Removing that line, and defining progress in the test, the segmentation
    fault doesn't occur.

    def test_edf_to_nx_converter(duplicate_data, external_path_type):
    + progress = tqdm(desc="conversion from edf") # or progress None

    So, the first I think is that the issue is in the parametrize and/or
    tqdm, but I made a little poc, and the error is not reproducible:

    ```
    @pytest.mark.parametrize("progress", (None, tqdm(desc="hola")))
    def test_poc(progress):
    if progress is not None:
    progress.total = 100
    progress.n = 20
    progress.refresh()
    assert 1==1
    ```

    So, now I suspect that the bug is in python3-nxtomomill side.


    --
    cheers,
    Emmanuel Arias

    ⢀⣴⠾⠻⢶⣦⠀
    ⣾⠁⢠⠒⠀⣿⡁ eamanu@debian.org
    ⢿⡄⠘⠷⠚⠋⠀ OpenPGP: 13796755BBC72BB8ABE2AEB5 FA9DEC5DE11C63F1
    ⠈⠳⣄

    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCgAdFiEEE3lnVbvHK7ir4q61+p3sXeEcY/EFAmh62yUACgkQ+p3sXeEc Y/GUdQ/+IbJ5EqqDeExZ7imPfYtDhCUlleqBEdBhQYkY46BdIEWL8LIZb5AQQ1Lz S3TrRxBk7FV+3hjdtTQ+TdBAvfl9EvarEG8v7yVhyASglh8glWGF8VVbNIJDojLe uvEXkRqA+kLNXsb0yaus3VEr1AbMrSGvRPDL9m7tP3VZ5O5l7xe12rPpq5bqW5gH SmGSWvcD5FFr5kp49S85cerADECDZx8eip7wCGkSAAV5RLytA96RfEx4AxUBdFbq a++3xuoscsOVKIasdn60LW+xaIc4D5YzRf3CDXnUmbbab3xd004RvG9LgqE3VsG2 i9628/qUHYUjl7IldeCLK3LSr8O2vvcu79i2HEVhEbTzVZjmq19kGBkhhTiudS8C sHHqOyZk8Fjw2k/JfvAnz0G6g3cu9QEhkK/EPO0/HotzufpeB8Ruacnu+9J56xn7 v9zegH834GK6tXHnjQZth6IoOr/rNwKj43JpgOUMH4820fp/ba0NtCl1dn98STMW frofLaHvhEQsWMV6Kkqw/lmPLYrwojvFvhid4aDZDnIJq88UXAJWyk5nBuScVJND wFovRWJ1jxFX7XN0IC8rblvx08BWJ3NLg613JCp9jfPMt+1theKqM98ECY/k+B4N 9dpy7tfPq/UCEc/s7ftdutM8Z0DK101NnqxEeGkTzLEdbPr