Modifiers disappear when you have multiples of them (opening old files) #85223
Labels
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 project
No Assignees
9 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender#85223
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
System Information
Operating system: Windows-10-10.0.19041-SP0 64 Bits
Graphics card: AMD Radeon(TM) RX Vega 11 Graphics ATI Technologies Inc. 4.5.13596 Core Profile Context 20.10.35.02 27.20.1034.6
Blender Version
Broken: version: 2.91.2, branch: master, commit date: 2021-01-19 16:15, hash:
5be9ef4177
Worked: (newest version of Blender that worked as expected)
Short description of error
When you add multiple modifiers, other modifiers will disappear and cant be changed anymore.
Here is a video showing the bug when I create multiple modifiers:
Exact steps for others to reproduce the error
You will see other modifiers disappear and cant be clicked anymore. You will see them when you drag other modifiers around.
untitled.blend
File from #86101
BrokenMods_Stripped.blend
File from #86108
Model_Tettey Nartey.blend
Added subscriber: @HADESBLACK
#86101 was marked as duplicate of this issue
#86108 was marked as duplicate of this issue
#86303 was marked as duplicate of this issue
Modifiers disappear when you have multiple instancesto Modifiers disappear when you have multiples of themRemoved subscriber: @HADESBLACK
Added subscribers: @HADESBLACK, @rjg
Changed status from 'Needs Triage' to: 'Needs User Info'
I was unable to reproduce the issue in 2.91.2 on both Windows and Linux. The attached file is corrupted and can't be opened due to a missing DNA block.
Please provide exact step by step instruction how you managed to get the corruption to happen. I was unable to reproduce this by simply adding the modifiers to the default cube.
Please open Blender's installation directory and double click on the
blender_debug_log.cmd
. This will start Blender in debug mode and create log files. Try to make Blender fail to add the modifier again. Once it does, close Blender. The Windows Explorer should open and show you up to two files, a debug log and the system information. Add them to your bug report by clicking on the upload button as shown in the screenshot below or via drag and drop.This comment was removed by @HADESBLACK
All I did was import an old blend file from 2.7 to 2.8 and then to 2.9.
I'm kinda surprised that you cannot open the blend file because it works for me just fine. I just removed every object and mesh.
Here is a new blend file.
untitled.blend
I can reproduce the issue in your new file. Could you please provide the source files and precise steps that you made that resulted in this file that has the incorrect behavior?
If this only happens when loading old project files then this appears to be a bug in the versioning code.
The problem is, that I cannot tell what exactly produced the problem. I guess it happened when I switched from 2.83 to 2.91. Because when I open my blend file with 2.83, everything is fine. Like I said. This is a very old blend file that was made all the way back in 2.79.
When I create new blend files there is no problem. It only happens when opening blend files that were made prior 2.91 or maybe even 2.83 as far as I know.
blender_debug_output.txt
blender_system_info.txt
Do you think I should just create a new blend file and append the collections of my old blend file into the new one? Would that help?
Okay, I just tried appending my models into a new blend file and it works. All my objects got imported correctly and the problem with the modifiers is now gone. God bless the "Append" function!
Changed status from 'Needs User Info' to: 'Needs Triage'
Added subscriber: @VincentBlankfield
Both blend files look somewhat corrupted to me.
The first one doesn't open in both 2.93 and 2.79 (missing DNA block).
The second one crashes 2.79, opens in 2.93. But still it has some weird stuff going on inside. For example, it has few extra screens (
Default.###
) that crash blender when trying to access some of their properties or delete them. For example, accessingScreens/Default.008/Areas- [x]/Spaces/Properties Space
crashes.The actual problem with the modifier panels not being drawn is caused by some ghost panels left in the file (I have no idea where to find them). Specifically they are:
Notice the sortorder values. That is the problem. Even though this report may be invalid due to corrupted file, it reveled what happens when there are more than 999 instanced panels (idk, someone may have 1k+ modifiers maybe).
The issue happens because in
ED_region_panels_layout_ex()
unique_panel_str
is generated usingUI_list_panel_unique_str()
as firstINSTANCED_PANEL_UNIQUE_STR_LEN-1
characters ofpanel->sortorder
. AndINSTANCED_PANEL_UNIQUE_STR_LEN
is defined as4
. Thepanel->sortorder
is generated as maximum existing panel sortorder plus 1 (seepanel_add_instanced()
). So in our case, newly created panels will getsortorder >= 1420
(as we already have such). As a consequence, first 3 digit will be taken as a (not)unique identifier ('142' for the next 10 panels). That will mess up the panel drawing. SettingINSTANCED_PANEL_UNIQUE_STR_LEN
to5
increases the limit and makes the panels show up.What brought the file to this state remains a mystery. But my bet is some scripts were involved.
Added subscriber: @mano-wii
Changed status from 'Needs Triage' to: 'Needs User Info'
I was able to reproduce the problem (and updated the report description for others to replicate as well).
Since the file may be corrupted (and this does not appear to be a frequent problem), this report cannot be confirmed as complete yet.
It would be nice to have a way to reproduce the problem from scratch.
Added subscriber: @lichtwerk
Changed status from 'Needs User Info' to: 'Archived'
Since it seems we cannot reproduce the corruption and no reproduction steps could be provided, I think we have to close this.
Feel free to comment again if a way to reproduce are found, we can always reopen in such case (and thx reporting in the first place).
I don't know why I put #eevee_viewport, it should be #user_interface
Changed status from 'Archived' to: 'Needs Triage'
I am reopening this, since we have this reported a couple of times (and this report already contains useful investigation by @VincentBlankfield)
Duplicates:
This seems to affect old files (since no repro steps could be found yet), will merge the other reports and post their files here as well
Added subscribers: @RafalSzostek, @filedescriptor
Added subscriber: @Tettey
Added subscriber: @WCN
Changed status from 'Needs Triage' to: 'Confirmed'
Added subscriber: @HooglyBoogly
Can confirm that increasing
INSTANCED_PANEL_UNIQUE_STR_LEN
to 5 (as @VincentBlankfield proposed) solves the issue.Not familiar with the code though, @HooglyBoogly : mind checking?
Modifiers disappear when you have multiples of themto Modifiers disappear when you have multiples of them (opening old files)This happened again for me, in the same project:
BrokenMods2_Stripped.blend
It's very similar to the first time.
I believe you can also solve this by just getting rid of your Properties panel (E.G. merging the Outliner over it) and then making a new one.
Thanks for the reports and the investigation everybody.
The problem is that each
uiBlock
needs to be assigned a unique name, but when there can be multiple modifiers of the same type, we use the panel sort order for the unique part of the string.However, the most recent test file has 1200+ panels in the property editor, so 4 characters isn't enough for a unique string.
That's not a situation I expected, but it makes sense, because we don't remove legacy panels with unused types when loading old files. So they tend to accumulate a bunch of unused panels.
That's why this works fine with a new property editor, it doesn't have all of those extra old panels.
There are a few possible solutions:
INSTANCED_PANEL_UNIQUE_STR_LEN
to 32 characters or so.If I've understood the situation correctly, then I'd like to humbly suggest not using the simplest option. As a user, I don't really like the the idea of stale UI cruft being left in the file.
More practically, the most recent time this happened, I noticed a decrease in filesize of about 400kB after destroying the old panel and re-saving the file. I don't know if the extra data is due to the unused panels, but if it is, then I assume that bumping the limit so high as to effectively unrestrict it would... exacerbate it.
I think the reason panels without types (old UI cruft panels) aren't removed is so that panels from addons will have consistent locations and expansion state if you disable and enable the addon. But yeah, that's a good point, the situation isn't great.
Without knowing how exactly the stale data in question is structured, this also raises some security questions for me. Does the kept panel include its input fields? Suppose I have an add-on panel from a proprietary cloud hosting or rendering service. I've input an API key into the panel, and saved the file. I then uninstall the add-on, so I cannot see the panel and have no way of know it's still in the file. I upload a stripped-down version of the file to a website like StackExchange. Is my API key now floating around in a
.blend
on the open Web?Hopefully the UI side and the property stuff are separated enough for that to not happen. But I still don't really like the idea of keeping around old data that I can't see. Personally, I think it's mostly reasonable to expect add-on panels to be reset if the file is saved with the add-on disabled.
(In fact, I wonder if it may even be useful as a way of resetting the add-on UI. Enabling and disabling the add-on is probably most likely to be done either (1) deliberately or (2) with a large time gap in between. In the first case, the artist may be trying to reset something, and in the second case, the add-on may have changed to be incompatible with old data. I wouldn't expect a Blender 2.9 setting to be preserved if I open a file in 2.7 and then save it again; I think the same goes for enabling and disabling an add-on.)
No, this is just the panels, where the only relevant saved information is the panel ID name, its sort order, and whether it was open or closed. You make some good points, though, maybe I can look into that next week.
I did notice one thing - when my open file closes unexpectedly a couple of times - mostly while rendering - the modifier is broken again.
I open a file with good modifiers, save as another file. Close and open Bleder and I already have broken modifiers
@RafalSzostek I'm not sure if this is the same issue, might be a good idea to report this in a separate ticket with all relevant information and files attached.
Same problem in my opinion, I had a problem opening an older version before, now saving
Before, I was opening it from the old version and had to rewrite the modifiers, now something like this happens.
enough only crash software, without saving - and effects the same
now it is like this, I open version nr1 (all is well), save as version nr2 and modifiers are already broken
In Blender 2,90,1 - everything is fine
This issue was referenced by
b8b7b47a00
Changed status from 'Confirmed' to: 'Resolved'
I just pushed a simple fix to increase total number of extra panels where this would still work (by a lot). Thanks again for the investigation.