Collada export crashes (when relative "//" is in Preferences > File Paths > Temporary Files) #95411

Closed
opened 2022-02-01 23:46:19 +01:00 by Martin · 16 comments

System Information
Operating system: macOS 12.1
Graphics card: M1 MBP

Blender Version
Broken: 3.0 with the attached userpref.blend
Broken: 2.93.8
Broken: 2.83.19

Short description of error

Exact steps for others to reproduce the error
from factory-startup:

    • type // in Preferences > File Paths > Temporary Files
    • Export > Collada
  • crash

note: in a debug build, the following assert is hit after step [1]

./bin/blender(BLI_system_backtrace+0x26) [0xf4a5f1b]
./bin/blender(_BLI_assert_print_backtrace+0x16) [0xf344596]
./bin/blender(BLI_exists+0x2a) [0xf497c6c]
./bin/blender(BLI_is_dir+0x18) [0xf497d21]
./bin/blender() [0x3c2a38d]
./bin/blender(BKE_tempdir_init+0x27) [0x3c2a5e2]
./bin/blender() [0x4c1ec17]
./bin/blender() [0x4a2e592]
./bin/blender(RNA_property_update+0x50) [0x4a2e7ca]
./bin/blender() [0x55d728b]
./bin/blender() [0x55f3b4a]
./bin/blender() [0x435810e]
./bin/blender() [0x435e018]
./bin/blender() [0x435e5cc]
./bin/blender(wm_event_do_handlers+0x7a0) [0x435fd81]
./bin/blender(WM_main+0x30) [0x4351d2e]
./bin/blender() [0x3c236af]
/lib64/libc.so.6(+0x2d590) [0x7fb0c4842590]
/lib64/libc.so.6(__libc_start_main+0x89) [0x7fb0c4842649]
./bin/blender(_start+0x25) [0x3c23095]
BLI_assert failed: source/blender/blenlib/intern/storage.c:348, BLI_exists(), at '!BLI_path_is_rel(path)'
**System Information** Operating system: macOS 12.1 Graphics card: M1 MBP **Blender Version** Broken: 3.0 with the attached userpref.blend Broken: 2.93.8 Broken: 2.83.19 **Short description of error** **Exact steps for others to reproduce the error** from factory-startup: - - [x] type `//` in `Preferences` > `File Paths` > `Temporary Files` - - [x] `Export` > `Collada` - crash note: in a debug build, the following assert is hit after step [1] ``` ./bin/blender(BLI_system_backtrace+0x26) [0xf4a5f1b] ./bin/blender(_BLI_assert_print_backtrace+0x16) [0xf344596] ./bin/blender(BLI_exists+0x2a) [0xf497c6c] ./bin/blender(BLI_is_dir+0x18) [0xf497d21] ./bin/blender() [0x3c2a38d] ./bin/blender(BKE_tempdir_init+0x27) [0x3c2a5e2] ./bin/blender() [0x4c1ec17] ./bin/blender() [0x4a2e592] ./bin/blender(RNA_property_update+0x50) [0x4a2e7ca] ./bin/blender() [0x55d728b] ./bin/blender() [0x55f3b4a] ./bin/blender() [0x435810e] ./bin/blender() [0x435e018] ./bin/blender() [0x435e5cc] ./bin/blender(wm_event_do_handlers+0x7a0) [0x435fd81] ./bin/blender(WM_main+0x30) [0x4351d2e] ./bin/blender() [0x3c236af] /lib64/libc.so.6(+0x2d590) [0x7fb0c4842590] /lib64/libc.so.6(__libc_start_main+0x89) [0x7fb0c4842649] ./bin/blender(_start+0x25) [0x3c23095] BLI_assert failed: source/blender/blenlib/intern/storage.c:348, BLI_exists(), at '!BLI_path_is_rel(path)' ```
Author

Added subscriber: @Martin-E

Added subscriber: @Martin-E
Author
[Screen Recording 2022-02-01 at 5.40.39 PM.mov](https://archive.blender.org/developer/F12840595/Screen_Recording_2022-02-01_at_5.40.39_PM.mov)

Added subscribers: @mano-wii, @iss

Added subscribers: @mano-wii, @iss

Can't reproduce crash here, could be Mac specific. @mano-wii can you reproduce?

Can't reproduce crash here, could be Mac specific. @mano-wii can you reproduce?
Author

Could be Mac Specific, and I think I found the issue. For some reason, I had set temporary files to // in preferences. Setting that back to the default blank stops Blender from crashing.

I tried this after running from Terminal and getting the following errors:

~ ❯❯❯ /Volumes/Blender/Blender.app/Contents/MacOS/Blender
Read prefs: /Users/Martin/Library/Application Support/Blender/3.0/config/userpref.blend
WARN (bke.appdir): source/blender/blenkernel/intern/appdir.c:1208 tempdir_session_create: Could not generate a temp file name for '*blender_wAUVww', falling back to '*'
libc++abi: terminating with uncaught exception of type COLLADASW::StreamWriterException
fish: Job 3, '/Volumes/Blender/Blender.app/Co…' terminated by signal SIGABRT (Abort)
~ ❯❯❯
Could be Mac Specific, and I think I found the issue. For some reason, I had set temporary files to // in preferences. Setting that back to the default blank stops Blender from crashing. I tried this after running from Terminal and getting the following errors: ``` ~ ❯❯❯ /Volumes/Blender/Blender.app/Contents/MacOS/Blender Read prefs: /Users/Martin/Library/Application Support/Blender/3.0/config/userpref.blend WARN (bke.appdir): source/blender/blenkernel/intern/appdir.c:1208 tempdir_session_create: Could not generate a temp file name for '*blender_wAUVww', falling back to '*' libc++abi: terminating with uncaught exception of type COLLADASW::StreamWriterException fish: Job 3, '/Volumes/Blender/Blender.app/Co…' terminated by signal SIGABRT (Abort) ~ ❯❯❯ ```
Member

Added subscriber: @PratikPB2123

Added subscriber: @PratikPB2123
Member

Can not reproduce either with your preferences (Tested on 3.0.0 and current master).
Probably Mac specific as @iss said

Operating system : Windows-10-10.0.18362-SP0 64 Bits
Graphics card : AMD Radeon(TM) 535 ATI Technologies .```
Can not reproduce either with your preferences (Tested on 3.0.0 and current master). Probably Mac specific as @iss said ```System Information Operating system : Windows-10-10.0.18362-SP0 64 Bits Graphics card : AMD Radeon(TM) 535 ATI Technologies .```

I can reproduce the crash using the attached userpref.blend.
But I have to narrow down better which configuration causes the crash, since replacing the whole userpref.blend seems like too much.


I Debug build I saw this assert:

Read prefs: /Users/germanocavalcante/Library/Application Support/Blender/3.2/config/userpref.blend
Color management: scene view "Filmic" not found, setting default "Standard".
2022-02-02 01:33:21.118653-0300 Blender[45846:292882] [plugin] AddInstanceForFactory: No factory registered for id <CFUUID 0x1498781f0> F8BB1C28-BAE8-11D6-9C31-00039315CD46
0   Blender                             0x0000000114f31480 BLI_system_backtrace + 308
1   Blender                             0x0000000114789c00 _BLI_assert_print_backtrace + 72
2   Blender                             0x0000000114ee47d8 BLI_exists + 356
3   Blender                             0x0000000114ee4988 BLI_is_dir + 48
4   Blender                             0x000000010018ebf0 where_is_temp + 472
5   Blender                             0x000000010018e9f8 BKE_tempdir_init + 64
6   Blender                             0x0000000102f5bc98 wm_init_userdef + 764
7   Blender                             0x0000000102f5b154 wm_homefile_read_ex + 8328
8   Blender                             0x0000000102f904c4 WM_init + 1368
9   Blender                             0x0000000100009770 main + 2864
10  dyld                                0x0000000144e2d0f4 start + 520
BLI_assert failed: source/blender/blenlib/intern/storage.c:364, BLI_exists(), at '!BLI_path_is_rel(path)'
I can reproduce the crash using the attached `userpref.blend`. But I have to narrow down better which configuration causes the crash, since replacing the whole `userpref.blend` seems like too much. --- I Debug build I saw this assert: ``` Read prefs: /Users/germanocavalcante/Library/Application Support/Blender/3.2/config/userpref.blend Color management: scene view "Filmic" not found, setting default "Standard". 2022-02-02 01:33:21.118653-0300 Blender[45846:292882] [plugin] AddInstanceForFactory: No factory registered for id <CFUUID 0x1498781f0> F8BB1C28-BAE8-11D6-9C31-00039315CD46 0 Blender 0x0000000114f31480 BLI_system_backtrace + 308 1 Blender 0x0000000114789c00 _BLI_assert_print_backtrace + 72 2 Blender 0x0000000114ee47d8 BLI_exists + 356 3 Blender 0x0000000114ee4988 BLI_is_dir + 48 4 Blender 0x000000010018ebf0 where_is_temp + 472 5 Blender 0x000000010018e9f8 BKE_tempdir_init + 64 6 Blender 0x0000000102f5bc98 wm_init_userdef + 764 7 Blender 0x0000000102f5b154 wm_homefile_read_ex + 8328 8 Blender 0x0000000102f904c4 WM_init + 1368 9 Blender 0x0000000100009770 main + 2864 10 dyld 0x0000000144e2d0f4 start + 520 BLI_assert failed: source/blender/blenlib/intern/storage.c:364, BLI_exists(), at '!BLI_path_is_rel(path)' ```
Member

Can we change status to "Confirmed" since Germano can reproduce this?

Can we change status to "Confirmed" since Germano can reproduce this?
Member

Added subscriber: @lichtwerk

Added subscriber: @lichtwerk
Member

Also hit an assert with just Factory Settings just typing // in Preferences > File Paths > Temporary Files

./bin/blender(BLI_system_backtrace+0x26) [0xf4a5f1b]
./bin/blender(_BLI_assert_print_backtrace+0x16) [0xf344596]
./bin/blender(BLI_exists+0x2a) [0xf497c6c]
./bin/blender(BLI_is_dir+0x18) [0xf497d21]
./bin/blender() [0x3c2a38d]
./bin/blender(BKE_tempdir_init+0x27) [0x3c2a5e2]
./bin/blender() [0x4c1ec17]
./bin/blender() [0x4a2e592]
./bin/blender(RNA_property_update+0x50) [0x4a2e7ca]
./bin/blender() [0x55d728b]
./bin/blender() [0x55f3b4a]
./bin/blender() [0x435810e]
./bin/blender() [0x435e018]
./bin/blender() [0x435e5cc]
./bin/blender(wm_event_do_handlers+0x7a0) [0x435fd81]
./bin/blender(WM_main+0x30) [0x4351d2e]
./bin/blender() [0x3c236af]
/lib64/libc.so.6(+0x2d590) [0x7fb0c4842590]
/lib64/libc.so.6(__libc_start_main+0x89) [0x7fb0c4842649]
./bin/blender(_start+0x25) [0x3c23095]
BLI_assert failed: source/blender/blenlib/intern/storage.c:348, BLI_exists(), at '!BLI_path_is_rel(path)'

Will check the collada crash next

Also hit an assert with just Factory Settings just typing `//` in `Preferences` > `File Paths` > `Temporary Files` ``` ./bin/blender(BLI_system_backtrace+0x26) [0xf4a5f1b] ./bin/blender(_BLI_assert_print_backtrace+0x16) [0xf344596] ./bin/blender(BLI_exists+0x2a) [0xf497c6c] ./bin/blender(BLI_is_dir+0x18) [0xf497d21] ./bin/blender() [0x3c2a38d] ./bin/blender(BKE_tempdir_init+0x27) [0x3c2a5e2] ./bin/blender() [0x4c1ec17] ./bin/blender() [0x4a2e592] ./bin/blender(RNA_property_update+0x50) [0x4a2e7ca] ./bin/blender() [0x55d728b] ./bin/blender() [0x55f3b4a] ./bin/blender() [0x435810e] ./bin/blender() [0x435e018] ./bin/blender() [0x435e5cc] ./bin/blender(wm_event_do_handlers+0x7a0) [0x435fd81] ./bin/blender(WM_main+0x30) [0x4351d2e] ./bin/blender() [0x3c236af] /lib64/libc.so.6(+0x2d590) [0x7fb0c4842590] /lib64/libc.so.6(__libc_start_main+0x89) [0x7fb0c4842649] ./bin/blender(_start+0x25) [0x3c23095] BLI_assert failed: source/blender/blenlib/intern/storage.c:348, BLI_exists(), at '!BLI_path_is_rel(path)' ``` Will check the collada crash next
Member

Changed status from 'Needs Triage' to: 'Confirmed'

Changed status from 'Needs Triage' to: 'Confirmed'
Member

Can confirm the crash as well.

Can confirm the crash as well.
Philipp Oeser changed title from Collada export crashes Blender with this userpref.blend to Collada export crashes (when relative "//" is in `Preferences` > `File Paths` > `Temporary Files`) 2022-02-22 15:02:51 +01:00
Bastien Montagne added this to the Pipeline, Assets & IO project 2023-02-09 15:40:38 +01:00
Philipp Oeser removed the
Interest
Pipeline, Assets & IO
label 2023-02-10 08:54:06 +01:00
Member

Possible fix is up, see !118856

Possible fix is up, see !118856
Member

NOTE: The double // will make the USD export (when trying to write .usdz) fail as well (no crash though):

Runtime Error (secondary thread): in Create at line 46 of /src/build_linux/deps/build/usd/src/external_usd/pxr/usd/ar/filesystemWritableAsset.cpp -- Could not create directory '//USDZ/' for asset '//USDZ/untitled.usdc'
Runtime Error (secondary thread): in StartPacking at line 2508 of /src/build_linux/deps/build/usd/src/external_usd/pxr/usd/usd/crateFile.cpp -- Unable to open //USDZ/untitled.usdc for write
Error: USD Export: unable to find suitable USD plugin to write //USDZ/untitled.usdc
Error: USD Export: Couldn't move new usdz file from temporary location //USDZ/untitled.usdz to /08_Bugtracker_reports/untitled.usdz
NOTE: The double `//` will make the USD export (when trying to write .usdz) fail as well (no crash though): ``` Runtime Error (secondary thread): in Create at line 46 of /src/build_linux/deps/build/usd/src/external_usd/pxr/usd/ar/filesystemWritableAsset.cpp -- Could not create directory '//USDZ/' for asset '//USDZ/untitled.usdc' Runtime Error (secondary thread): in StartPacking at line 2508 of /src/build_linux/deps/build/usd/src/external_usd/pxr/usd/usd/crateFile.cpp -- Unable to open //USDZ/untitled.usdc for write Error: USD Export: unable to find suitable USD plugin to write //USDZ/untitled.usdc Error: USD Export: Couldn't move new usdz file from temporary location //USDZ/untitled.usdz to /08_Bugtracker_reports/untitled.usdz ```

Committed a fix for "//" not to be interpreted as a relative path, this resovles the asserts but causes "//" to become "/", which users typically wont have permissions to write to, see: c19cdc343f.

Further fixes should be applied to collada AFAICS as it's possible the user sets the temporary path to a location they don't have permission to write to, it's also possible file system errors will remount a filesystem read-only, so this should be resolved in the exporter.

Committed a fix for "//" not to be interpreted as a relative path, this resovles the asserts but causes "//" to become "/", which users typically wont have permissions to write to, see: c19cdc343f9a8ffae89146fbf80e6152a340562b. Further fixes should be applied to collada AFAICS as it's possible the user sets the temporary path to a location they don't have permission to write to, it's also possible file system errors will remount a filesystem read-only, so this should be resolved in the exporter.
Blender Bot added
Status
Resolved
and removed
Status
Confirmed
labels 2024-03-05 13:16:16 +01:00
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No Assignees
6 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#95411
No description provided.