New shapekey features potentially destroy mesh shape on old files on tab-tab #43998

Open
opened 2015-03-15 00:19:33 +01:00 by bassam kurdali · 8 comments
Member

System Information
Fedora GNU/Linux 64 bit v 21/ intel cpu / nvidia gpu

Blender Version
Broken: Current Master
Worked: 2.73

Short description of error
Some shapekey enhancements seem to cause a problem on some old meshes, destroying basis shape just by tabbing in and out of edit mode
selecting the mesh and pressing 'tab tab' creates the error. Not that even though there appears to be an active shapekey, the buttons for pinning etc. are not visible.
If one first selects a shapekey and then tab tabs, the bug goes away. however, this can cause loss of work/destroyed meshes if the user does not notice in time.
Exact steps for others to reproduce the error
1- download the attached gilgatest.blend
2- open the file, the mesh should be selected
3- note the appearance of the shapkey panel: even though basis appears active, the pin button and associated area does not display
4- without clicking anywhere else, press tab-tab in the 3d view (enter and exit editmode)
5- note that the appearance of the mesh changes - if you save this it is not revertable
6- don't save
7- reopen the original file
8- this time, click once on the Basis Shape
9- observe that the relative checkbox, pin, and display in edit mode buttons all appear.
10- press tab tab in the 3d view
11- observe that the mesh shape does not change

Final notes:
In my opinion this is quite severe if/when it hits, as the user (in this case me) might not notice and end up doing a bunch of work in a file, saving and committing it. In my case, since I have SVN I can revert and redo that work. Other people may not be so lucky.

**System Information** Fedora GNU/Linux 64 bit v 21/ intel cpu / nvidia gpu **Blender Version** Broken: Current Master Worked: 2.73 **Short description of error** Some shapekey enhancements seem to cause a problem on some old meshes, destroying basis shape just by tabbing in and out of edit mode selecting the mesh and pressing 'tab tab' creates the error. Not that even though there appears to be an active shapekey, the buttons for pinning etc. are not visible. If one first selects a shapekey and *then* tab tabs, the bug goes away. however, this can cause loss of work/destroyed meshes if the user does not notice in time. **Exact steps for others to reproduce the error** 1- download the attached [gilgatest.blend](https://archive.blender.org/developer/F151467/gilgatest.blend) 2- open the file, the mesh should be selected 3- note the appearance of the shapkey panel: even though basis appears active, the pin button and associated area does not display 4- without clicking anywhere else, press tab-tab in the 3d view (enter and exit editmode) 5- note that the appearance of the mesh changes - if you save this it is not revertable 6- don't save 7- reopen the original file 8- this time, click once on the Basis Shape 9- observe that the relative checkbox, pin, and display in edit mode buttons all appear. 10- press tab tab in the 3d view 11- observe that the mesh shape does not change Final notes: In my opinion this is quite severe if/when it hits, as the user (in this case me) might not notice and end up doing a bunch of work in a file, saving and committing it. In my case, since I have SVN I can revert and redo that work. Other people may not be so lucky.
Author
Member

Changed status to: 'Open'

Changed status to: 'Open'
Author
Member

Added subscriber: @BassamKurdali

Added subscriber: @BassamKurdali
Author
Member

Here's a short video of me doing the steps.
bugshapekey.m4v

Here's a short video of me doing the steps. [bugshapekey.m4v](https://archive.blender.org/developer/F151469/bugshapekey.m4v)

Added subscribers: @ideasman42, @Sergey, @mont29

Added subscribers: @ideasman42, @Sergey, @mont29

Yeah, this is really odd… File seems to come from 2.62, so I’d infer 2.63.20 versioning is the culprit:

  	if (main->versionfile < 263 || (main->versionfile == 263 && main->subversionfile < 20)) {
  		Key *key;
  		for (key = main->key.first; key; key = key->id.next) {
  			blo_do_versions_key_uidgen(key);
  		}
  	}

But still… Clicking on the active skey in the list merely do an object update, I would assume this is done anyway once the file has been read and versioned?

Campbell, Sergey, you may have a better idea of what’s happening here?

Yeah, this is really odd… File seems to come from 2.62, so I’d infer 2.63.20 versioning is the culprit: ``` if (main->versionfile < 263 || (main->versionfile == 263 && main->subversionfile < 20)) { Key *key; for (key = main->key.first; key; key = key->id.next) { blo_do_versions_key_uidgen(key); } } ``` But still… Clicking on the active skey in the list merely do an object update, I would assume this is done anyway once the file has been read and versioned? Campbell, Sergey, you may have a better idea of what’s happening here?
Author
Member

I've done a bunch of save and loads in current master (original file had a lot of rig stuff in it/ was huge) I wonder if it is incorrectly assuming I was editing a shape because no shape is active, and erroneously applying a difference to the basis?
It is still quite scary (I found the bug by doing totally unrelated things in the rig file - never looked at the elbow ) and then found all our anim files looked broken :/
luckily I have SVN!

I've done a bunch of save and loads in current master (original file had a lot of rig stuff in it/ was huge) I wonder if it is incorrectly assuming I was editing a shape because no shape is active, and erroneously applying a difference to the basis? It is still quite scary (I found the bug by doing totally unrelated things in the rig file - never looked at the elbow ) and then found all our anim files looked broken :/ luckily I have SVN!
Member

Added subscriber: @Jeroen-Bakker

Added subscriber: @Jeroen-Bakker
Member

This is an issue that can still be reproduced. But as it only happens in old files I mark it as a Known Issue with Low priority.

This is an issue that can still be reproduced. But as it only happens in old files I mark it as a Known Issue with Low priority.
Philipp Oeser removed the
Interest
Modeling
label 2023-02-09 15:30: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 project
No Assignees
3 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#43998
No description provided.