Bug 1874398

Summary: makesrna crashes during the build
Product: [Fedora] Fedora Reporter: Dan Horák <dan>
Component: blenderAssignee: Dan Horák <dan>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 34CC: design-devel, hannsj_uhl, kwizart, luya_tfz, mtasaka, negativo17, promac, tstaudt
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: s390x   
OS: Unspecified   
Whiteboard:
Fixed In Version: blender-2.93.6-1.fc36 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-11-30 13:18:18 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 467765    

Description Dan Horák 2020-09-01 09:38:03 UTC
The makesrna tool crashes during the build

(gdb) where
#0  0x000003fffdccab86 in raise () from /lib64/libc.so.6
#1  0x000003fffdcab808 in abort () from /lib64/libc.so.6
#2  0x000002aa0018a678 in MEM_lockfree_freeN (vmemh=<optimized out>) at /builddir/build/BUILD/blender-2.83.5/intern/guardedalloc/intern/mallocn_lockfree_impl.c:128
#3  MEM_lockfree_freeN (vmemh=<optimized out>) at /builddir/build/BUILD/blender-2.83.5/intern/guardedalloc/intern/mallocn_lockfree_impl.c:120
#4  0x000002aa0019497c in DNA_sdna_free (sdna=0x2aa002cfbf8) at /builddir/build/BUILD/blender-2.83.5/source/blender/makesdna/intern/dna_genfile.c:146
#5  0x000002aa0005d8f8 in DNA_sdna_from_data (data=<optimized out>, do_endian_swap=false, data_alloc=false, r_error_message=<synthetic pointer>, data_len=101564)
    at /builddir/build/BUILD/blender-2.83.5/source/blender/makesdna/intern/dna_genfile.c:335
#6  RNA_create () at /builddir/build/BUILD/blender-2.83.5/source/blender/makesrna/intern/rna_define.c:697
#7  0x000002aa00058dc8 in rna_preprocess (outfile=0x3fffffff4b2 "/builddir/build/BUILD/blender-2.83.5/s390x-redhat-linux-gnu/source/blender/makesrna/intern/")
    at /builddir/build/BUILD/blender-2.83.5/source/blender/makesrna/intern/makesrna.c:4993
#8  0x000002aa0005271c in main (argc=<optimized out>, argv=0x3fffffff1d8) at /builddir/build/BUILD/blender-2.83.5/source/blender/makesrna/intern/makesrna.c:5148


Version-Release number of selected component (if applicable):
blender-2.83.5-5.fc34

Comment 1 Dan Horák 2020-09-01 09:56:08 UTC
And there is no crash when LTO is disabled, so very likely it uncovered a hidden bug or relying on undefined behaviour or similar source code issue.

Comment 2 Fedora Update System 2020-09-06 01:25:38 UTC
FEDORA-2020-a9c959e657 has been submitted as an update to Fedora 33. https://bodhi.fedoraproject.org/updates/FEDORA-2020-a9c959e657

Comment 3 Fedora Update System 2020-09-07 21:44:16 UTC
FEDORA-2020-a9c959e657 has been pushed to the Fedora 33 testing repository.
In short time you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2020-a9c959e657`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-a9c959e657

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 4 Dan Horák 2020-09-08 07:06:02 UTC
Luya, please report this issue to upstream. This is most likely blender's fault.

Comment 5 Luya Tshimbalanga 2020-09-09 05:54:33 UTC
(In reply to Dan Horák from comment #4)
> Luya, please report this issue to upstream. This is most likely blender's
> fault.

Does the issue happen on Blender 2.90? Just asking because submitting the bug to upstream? If possible, attach the log containing the traceback

Comment 6 Dan Horák 2020-09-09 07:24:01 UTC
Yes, it does happen with blender 2.90 as well. I believe this is another case when enabled LTO reveals some real bug in the source code.

build output

...
[ 82%] Built target makesrna
make  -f source/blender/makesrna/intern/CMakeFiles/bf_rna.dir/build.make source/blender/makesrna/intern/CMakeFiles/bf_rna.dir/depend
make[2]: Entering directory '/builddir/build/BUILD/blender-2.90.0/s390x-redhat-linux-gnu'
[ 82%] Generating rna_ID_gen.c, rna_action_gen.c, rna_animation_gen.c, rna_animviz_gen.c, rna_armature_gen.c, rna_boid_gen.c, rna_brush_gen.c, rna_cachefile_gen.c, rna_camera_gen.c, rna_cloth_gen.c, rna_collection_gen.c, rna_color_gen.c, rna_constraint_gen.c, rna_context_gen.c, rna_curve_gen.c, rna_curveprofile_gen.c, rna_depsgraph_gen.c, rna_dynamicpaint_gen.c, rna_fcurve_gen.c, rna_fluid_gen.c, rna_gpencil_gen.c, rna_gpencil_modifier_gen.c, rna_image_gen.c, rna_key_gen.c, rna_lattice_gen.c, rna_layer_gen.c, rna_light_gen.c, rna_lightprobe_gen.c, rna_linestyle_gen.c, rna_main_gen.c, rna_mask_gen.c, rna_material_gen.c, rna_mesh_gen.c, rna_meta_gen.c, rna_modifier_gen.c, rna_movieclip_gen.c, rna_nla_gen.c, rna_nodetree_gen.c, rna_object_gen.c, rna_object_force_gen.c, rna_packedfile_gen.c, rna_palette_gen.c, rna_particle_gen.c, rna_pose_gen.c, rna_render_gen.c, rna_rigidbody_gen.c, rna_rna_gen.c, rna_scene_gen.c, rna_screen_gen.c, rna_sculpt_paint_gen.c, rna_sequencer_gen.c, rna_shader_fx_gen.c, rna_sound_gen.c, rna_space_gen.c, rna_speaker_gen.c, rna_test_gen.c, rna_text_gen.c, rna_texture_gen.c, rna_timeline_gen.c, rna_tracking_gen.c, rna_ui_gen.c, rna_userdef_gen.c, rna_vfont_gen.c, rna_volume_gen.c, rna_wm_gen.c, rna_wm_gizmo_gen.c, rna_workspace_gen.c, rna_world_gen.c, rna_xr_gen.c, rna_prototypes_gen.h
cd /builddir/build/BUILD/blender-2.90.0/s390x-redhat-linux-gnu/source/blender/makesrna/intern && ../../../../bin/makesrna /builddir/build/BUILD/blender-2.90.0/s390x-redhat-linux-gnu/source/blender/makesrna/intern/
Attempt to free NULL pointer
make[2]: *** [source/blender/makesrna/intern/CMakeFiles/bf_rna.dir/build.make:84: source/blender/makesrna/intern/rna_ID_gen.c] Aborted (core dumped)
make[2]: Leaving directory '/builddir/build/BUILD/blender-2.90.0/s390x-redhat-linux-gnu'
make[1]: *** [CMakeFiles/Makefile2:5901: source/blender/makesrna/intern/CMakeFiles/bf_rna.dir/all] Error 2


running under gdb gives:

<mock-chroot> sh-5.0# gdb ../../../../bin/makesrna
GNU gdb (GDB) Fedora 9.2-6.fc33
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "s390x-redhat-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ../../../../bin/makesrna...
(gdb) set args /builddir/build/BUILD/blender-2.90.0/s390x-redhat-linux-gnu/source/blender/makesrna/intern/
(gdb) run
Starting program: /builddir/build/BUILD/blender-2.90.0/s390x-redhat-linux-gnu/bin/makesrna /builddir/build/BUILD/blender-2.90.0/s390x-redhat-linux-gnu/source/blender/makesrna/intern/
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Attempt to free NULL pointer

Program received signal SIGABRT, Aborted.
0x000003fffda4ab86 in raise () from /lib64/libc.so.6
(gdb) where
#0  0x000003fffda4ab86 in raise () from /lib64/libc.so.6
#1  0x000003fffda2b808 in abort () from /lib64/libc.so.6
#2  0x000002aa0018f5fa in MEM_lockfree_freeN (vmemh=<optimized out>) at /builddir/build/BUILD/blender-2.90.0/intern/guardedalloc/intern/mallocn_lockfree_impl.c:114
#3  MEM_lockfree_freeN (vmemh=0x0) at /builddir/build/BUILD/blender-2.90.0/intern/guardedalloc/intern/mallocn_lockfree_impl.c:102
#4  0x000002aa00190a6c in DNA_sdna_free (sdna=0x2aa002e9808) at /builddir/build/BUILD/blender-2.90.0/source/blender/makesdna/intern/dna_genfile.c:146
#5  0x000002aa0005f67e in DNA_sdna_from_data (data=<optimized out>, do_endian_swap=false, data_alloc=false, r_error_message=<synthetic pointer>, data_len=103476)
    at /builddir/build/BUILD/blender-2.90.0/source/blender/makesdna/intern/dna_genfile.c:335
#6  RNA_create () at /builddir/build/BUILD/blender-2.90.0/source/blender/makesrna/intern/rna_define.c:708
#7  0x000002aa0005ab78 in rna_preprocess (outfile=0x3fffffff47c "/builddir/build/BUILD/blender-2.90.0/s390x-redhat-linux-gnu/source/blender/makesrna/intern/")
    at /builddir/build/BUILD/blender-2.90.0/source/blender/makesrna/intern/makesrna.c:5016
#8  0x000002aa0005442a in main (argc=<optimized out>, argv=0x3fffffff1a8) at /builddir/build/BUILD/blender-2.90.0/source/blender/makesrna/intern/makesrna.c:5174
(gdb)

Comment 7 Luya Tshimbalanga 2020-09-09 15:28:11 UTC
Bug report filed upstream
https://developer.blender.org/T80639

Comment 8 Luya Tshimbalanga 2020-09-10 05:00:46 UTC
Upstream lacks the hardware and equipment to reproduce the issue. They suggested removing a line of code starting with "WITH_ASSERT_ABORT" by try taking out the abort by either removing the line of code or by turning the cmake option WITH_ASSERT_ABORT to off. Source code: https://developer.blender.org/diffusion/B/browse/master/intern/guardedalloc/intern/mallocn_lockfree_impl.c$112

I will suggest to get contact with upstream via the ticket report (see links attached on comment #7) considering your knowledge of s390x architecture.

Comment 9 Dan Horák 2020-09-10 09:26:10 UTC
I have replied in the upstream ticket. Hopefully we can find a solution as blender would benefit from it, I believe.

Comment 10 Luya Tshimbalanga 2020-09-12 17:21:47 UTC
Upstream closed the ticket because of the supported s390x. Feel free to work on a fix.

Comment 11 Fedora Update System 2020-09-25 16:48:42 UTC
FEDORA-2020-a9c959e657 has been pushed to the Fedora 33 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 12 Fedora Update System 2020-11-28 21:17:16 UTC
FEDORA-2020-e807be8b1d has been submitted as an update to Fedora 32. https://bodhi.fedoraproject.org/updates/FEDORA-2020-e807be8b1d

Comment 13 Fedora Update System 2020-11-28 21:17:39 UTC
FEDORA-2020-1aef1e9bca has been submitted as an update to Fedora 33. https://bodhi.fedoraproject.org/updates/FEDORA-2020-1aef1e9bca

Comment 14 Ben Cotton 2021-02-09 15:17:31 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 34 development cycle.
Changing version to 34.

Comment 15 Fedora Update System 2021-06-04 08:59:38 UTC
FEDORA-2021-95e340dc3d has been submitted as an update to Fedora 34. https://bodhi.fedoraproject.org/updates/FEDORA-2021-95e340dc3d

Comment 16 Fedora Update System 2021-06-04 08:59:39 UTC
FEDORA-2021-ec68aa382b has been submitted as an update to Fedora 33. https://bodhi.fedoraproject.org/updates/FEDORA-2021-ec68aa382b

Comment 17 Fedora Update System 2021-06-05 01:09:40 UTC
FEDORA-2021-95e340dc3d has been pushed to the Fedora 34 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2021-95e340dc3d`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-95e340dc3d

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 18 Fedora Update System 2021-06-05 01:57:13 UTC
FEDORA-2021-ec68aa382b has been pushed to the Fedora 33 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2021-ec68aa382b`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2021-ec68aa382b

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 19 Fedora Update System 2021-06-13 01:19:47 UTC
FEDORA-2021-ec68aa382b has been pushed to the Fedora 33 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 20 Fedora Update System 2021-06-13 01:49:54 UTC
FEDORA-2021-95e340dc3d has been pushed to the Fedora 34 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 21 Mamoru TASAKA 2021-11-27 14:36:40 UTC
Reopening.

Comment 23 Luya Tshimbalanga 2021-11-27 19:57:31 UTC
Thank you for the fix. The patch also works for the incoming blender 2.93.6 as tested on scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=79329128

Comment 24 Mamoru TASAKA 2021-11-30 13:18:18 UTC
Now this is really fixed.

Comment 25 Dan Horák 2021-11-30 13:57:18 UTC
Thanks a lot, Mamoru.