TD 2025.32820 — Parameter.page.name deadlocks TD on renderpickCHOP/DAT certain pars

Hi,
TD 2025.32820, Win10/macOS

Reading par.page.name on certain pars of renderpickCHOP and renderpickDAT freezes
TD’s main thread indefinitely.

Attached probe.toe — drop into any folder, open in TD, it auto-runs. Min repro
also 2 lines below:

rp = op('/project1').create(renderpickCHOP, 'rp')
print(rp.par.scope.page.name)   # hangs forever

Affected combos (10, all in renderpick* family):

renderpickCHOP: scope, srselect, exportmethod, autoexportroot,
                exporttable, renamefrom, renameto
renderpickDAT:  extension, customext, wordwrap

The hang is C-side — sys.setprofile shows no Python activity past the call.
Not cycle-related (project has no Cook dependency loops). Not exec-context
related (deferring via run(delayFrames=1) doesn’t help).

probe.toe self-runs an exhaustive scan of all 647 op types in td.families
(every op class TD knows about) — auto-runs on open. It will hang on the first
bad combo; manually kill TD (Task Manager / taskkill) and reopen the .toe — it
auto-resumes past the recorded combo to find the next. <project_folder>/
probe_state/ holds the per-op log, progress, and accumulated bad_combos.json
after each cycle. 11 manual kill+reopen cycles enumerated all 10 bad pairs on
our build.

probe.toe (6.8 KB)

Best,
Alex

1 Like

Hey @letsius

Thanks for reporting the issue. We’ll take a look and get back to you.

1 Like

Hi @letsius

Thanks again for reporting the bug.

I wasn’t able to reproduce the hang on my machine using 2025.32820 and your mini repro script. However, there was an issue on our side with the way parameters were being instantiated in Render Pick CHOP’s/DAT’s parameter dialogue. After fixing the bug, your probe.toe no longer crashes for me, and it doesn’t create bad_combos.json anymore. This fix will be in builds starting from 2025.32930+.

1 Like

Hi, thank you
Yes, just noticed that min repro is:

rp = parent().create(renderpickCHOP)
for p in rp.pars():
	with open('log.txt','w') as f:
		f.write(p.name)
	pg = p.page
	nm = pg.name if pg else None
	print(nm)
rp.destroy()

Ah, thank you.

I’m able to reproduce the crash in 2025.32820 using that script. 2025.32930 doesn’t crash, so it looks like it’s fixed. It’ll be in the next release.

1 Like