Maniphest T93252

3.0 Beta - crash on startup with file
Closed, Archived

Assigned To
None
Authored By
Dan McLaughlin (DrM)
Nov 21 2021, 1:17 AM
Tags
  • BF Blender
  • Nodes & Physics
  • Geometry Nodes
Subscribers
Dan McLaughlin (DrM)
Hans Goudey (HooglyBoogly)
Jacques Lucke (JacquesLucke)
Richard Antalik (ISS)

Description

System Information
Operating system: Win 10
Graphics card: 3090

Blender Version
Broken: 3.0 Beta
Worked: 2.93

The following Blender file crashes on loading, it loads in 2.93. Tested on both Apple and Windows with same effect

Exact steps for others to reproduce the error

Load the file

Event Timeline

Dan McLaughlin (DrM) created this task.Nov 21 2021, 1:17 AM
Evan Wilson (EAW) updated the task description.Nov 21 2021, 3:27 AM
Richard Antalik (ISS) changed the task status from Needs Triage to Confirmed.Nov 24 2021, 10:29 AM
Richard Antalik (ISS) added projects: Nodes & Physics, Geometry Nodes.
Richard Antalik (ISS) added a subscriber: Richard Antalik (ISS).

Can confirm crash

This triggers assert BLI_assert(single_value.value == nullptr) at

	blender.exe!blender::modifiers::geometry_nodes::GeometryNodesEvaluator::add_value_to_input_socket::__l2::<lambda>(blender::modifiers::geometry_nodes::LockedNode & locked_node) Line 1480	C++
	blender.exe!blender::modifiers::geometry_nodes::GeometryNodesEvaluator::with_locked_node::__l2::<lambda>() Line 1656	C++
	blender.exe!tbb::interface7::internal::delegated_function<void <lambda>(void) const ,void>::operator()() Line 97	C++
	[External Code]	
	blender.exe!tbb::interface7::internal::isolate_impl<void,void <lambda>(void) const>(const blender::modifiers::geometry_nodes::GeometryNodesEvaluator::with_locked_node::__l2::void <lambda>(void) & f) Line 217	C++
	blender.exe!tbb::interface7::this_task_arena::isolate<void <lambda>(void)>(const blender::modifiers::geometry_nodes::GeometryNodesEvaluator::with_locked_node::__l2::void <lambda>(void) & f) Line 473	C++
	blender.exe!blender::threading::isolate_task<void <lambda>(void)>(const blender::modifiers::geometry_nodes::GeometryNodesEvaluator::with_locked_node::__l2::void <lambda>(void) & function) Line 109	C++
	blender.exe!blender::modifiers::geometry_nodes::GeometryNodesEvaluator::with_locked_node<void <lambda>(blender::modifiers::geometry_nodes::LockedNode &)>(const blender::nodes::DNode node, blender::modifiers::geometry_nodes::NodeState & node_state, const blender::modifiers::geometry_nodes::GeometryNodesEvaluator::add_value_to_input_socket::__l2::void <lambda>(blender::modifiers::geometry_nodes::LockedNode &) & function) Line 1657	C++
	blender.exe!blender::modifiers::geometry_nodes::GeometryNodesEvaluator::add_value_to_input_socket(const blender::nodes::DInputSocket socket, const blender::nodes::DOutputSocket origin, blender::fn::GMutablePointer value) Line 1492	C++
	blender.exe!blender::modifiers::geometry_nodes::GeometryNodesEvaluator::forward_to_sockets_with_same_type(blender::LinearAllocator<blender::GuardedAllocator> & allocator, blender::Span<blender::nodes::DInputSocket> to_sockets, blender::fn::GMutablePointer value_to_forward, const blender::nodes::DOutputSocket from_socket) Line 1450	C++
	blender.exe!blender::modifiers::geometry_nodes::GeometryNodesEvaluator::forward_output(const blender::nodes::DOutputSocket from_socket, blender::fn::GMutablePointer value_to_forward) Line 1407	C++
	blender.exe!blender::modifiers::geometry_nodes::GeometryNodesEvaluator::execute_multi_function_node__value(const blender::nodes::DNode node, const blender::fn::MultiFunction & fn, blender::modifiers::geometry_nodes::NodeState & node_state, blender::LinearAllocator<blender::GuardedAllocator> & allocator, blender::Span<void const *> input_values, blender::Span<blender::fn::ValueOrFieldCPPType const *> input_types) Line 1076	C++
	blender.exe!blender::modifiers::geometry_nodes::GeometryNodesEvaluator::execute_multi_function_node(const blender::nodes::DNode node, const blender::nodes::NodeMultiFunctions::Item & fn_item, blender::modifiers::geometry_nodes::NodeState & node_state) Line 984	C++
	blender.exe!blender::modifiers::geometry_nodes::GeometryNodesEvaluator::execute_node(const blender::nodes::DNode node, blender::modifiers::geometry_nodes::NodeState & node_state) Line 918	C++
	blender.exe!blender::modifiers::geometry_nodes::GeometryNodesEvaluator::node_task_run(const blender::nodes::DNode node, blender::modifiers::geometry_nodes::NodeState & node_state) Line 731	C++
	blender.exe!blender::modifiers::geometry_nodes::GeometryNodesEvaluator::run_node_from_task_pool(TaskPool * task_pool, void * task_data) Line 713	C++
	blender.exe!Task::operator()() Line 179	C++
	blender.exe!tbb::internal::function_task<Task>::execute() Line 1060	C++
	[External Code]
Jacques Lucke (JacquesLucke) added a subscriber: Jacques Lucke (JacquesLucke).EditedNov 24 2021, 11:30 AM

Somehow versioning did not work in this file properly, even in 2.93 already. Two issues I've found so far:

  • The Attribute Randomize node has no valid data type.
  • The Grid node has two links connected to the Size Y input.

When fixing those errors in 2.93 I get a warning when loading the file in 3.0: Error, region type 11 missing in - name:"Info", id:7. There is a big Info editor where there should have been the spreadsheet. So something went wrong there as well.

My best guess right now is that the file was created in 2.93, then it was loaded and saved in 2.92 or older and then loaded in 2.93 or later again. This probably broke a bunch of versioning code.
Not sure if there is anything we can do to solve this right now. May be good to show the user a warning when saving a file with an older version than it was saved with before.

If you do the changes mentioned above in 2.93, the file seems to work in 3.0 again. But it's hard to say whether there are other hidden issues in the file.

@Hans Goudey (HooglyBoogly) what do you think?

Jacques Lucke (JacquesLucke) added a subscriber: Hans Goudey (HooglyBoogly).Nov 24 2021, 11:31 AM
Hans Goudey (HooglyBoogly) changed the task status from Confirmed to Needs Information from User.Nov 24 2021, 1:47 PM

Without more info in the report I think I'd agree with your assessment. Since I think we added a parameter to the attribute randomize node and the spreadsheet in in 2.93. I'm not sure how else the second link would be connected to the "Size Y" input either, since if versioning happened in the correct order, the user wouldn't have been able to link to that socket without versioning happening first.

@Dan McLaughlin (DrM) Is that a reasonable guess, that the file was saved in 2.92 at some point?

Dan McLaughlin (DrM) added a comment.Nov 24 2021, 4:21 PM

Good question @Hans Goudey (HooglyBoogly), I'm not the author of this file, it's a heavy geometry nodes project that was from [[ https://www.youtube.com/playlist?list=PLq_gnPdKSjAqYmTLaEITDR2dW92KgIpKA | this ]]series on YouTube. The file was from Gumroad (for $1), I tried contacting the author but I don't see a way to do that in Gumroad. Anyhow, the video series was done this summer, and in it he does suggest using 3.0 and on the [[ https://kammertone.gumroad.com/l/procbuild?recommended_by=library | Gumroad ]]page he says Blender 3.0.0.

So not sure, if somebody can figure out how to contact him we can find out, but it appears like he has used it on an earlier build of 3.0.

Dan McLaughlin (DrM) added a comment.Nov 24 2021, 4:28 PM

Any advise for fixing the file so we can work with it in 3.0?

Jacques Lucke (JacquesLucke) added a comment.Nov 25 2021, 1:38 PM

I already mentioned how to (probably) fix the file. See the images in my previous message.

Jacques Lucke (JacquesLucke) closed this task as Archived.Nov 30 2021, 3:42 PM

I created T93516 which will hopefully avoid this kind of issue in the future.

Dan McLaughlin (DrM) added a comment.Nov 30 2021, 4:37 PM

Thanks guys!