You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A clean three-way merge that does not build the behaviour either side had.
#784 (b1cd4d8f6, part of #730) rewrote the NemotronH: the unported arms REFUSE BY NAME subcase to call the REAL reg.factory->load_weights(reg, config, source) instead of downcasting a fabricated struct StubModel : vllm::LoadedModel. UBSan was right about the stub and the rewrite is correct on main, where LoadNemotronHForCausalLM reads only source.kind and the config and never touches source.safetensors.
PR #752 (row/MODEL-NEMOTRON-H-LOADER-LAND, #517 §6d) gives NemotronH a weight loader. LoadNemotronHForCausalLM now refuses an empty source by name:
Model architecture NemotronHForCausalLM: the safetensors source carries no shards
Merged, #784's ModelSource source; source.kind = kSafetensors; hits exactly that refusal, so the subcase THROWS before it ever reaches the forward:
test_nemotron_h_scaffold.cpp:666: ERROR: test case THREW exception:
Model architecture NemotronHForCausalLM: the safetensors source carries no shards
Neither parent is red. git merge reports no conflict because the two changes touch different files. This is the [merge-tree CLEAN is not merge-tree BUILDS] class.
Repaired on row/MODEL-NEMOTRON-H-LOADER-LAND as part of the #752 review-repair, where the two sides actually meet, by splitting the subcase in two rather than deleting either side's guarantee:
an empty safetensors source REFUSES AT LOAD, by name (NemotronHForCausalLM, carries no shards) — the guarantee moved earlier, and is asserted where it now lives;
A clean three-way merge that does not build the behaviour either side had.
#784(b1cd4d8f6, part of #730) rewrote theNemotronH: the unported arms REFUSE BY NAMEsubcase to call the REALreg.factory->load_weights(reg, config, source)instead of downcasting a fabricatedstruct StubModel : vllm::LoadedModel. UBSan was right about the stub and the rewrite is correct onmain, whereLoadNemotronHForCausalLMreads onlysource.kindand the config and never touchessource.safetensors.PR #752 (
row/MODEL-NEMOTRON-H-LOADER-LAND, #517 §6d) gives NemotronH a weight loader.LoadNemotronHForCausalLMnow refuses an empty source by name:Merged, #784's
ModelSource source; source.kind = kSafetensors;hits exactly that refusal, so the subcase THROWS before it ever reaches the forward:Neither parent is red.
git mergereports no conflict because the two changes touch different files. This is the [merge-tree CLEAN is not merge-tree BUILDS] class.Repaired on
row/MODEL-NEMOTRON-H-LOADER-LANDas part of the #752 review-repair, where the two sides actually meet, by splitting the subcase in two rather than deleting either side's guarantee:NemotronHForCausalLM,carries no shards) — the guarantee moved earlier, and is asserted where it now lives;vllm::NemotronHForwardon a default-constructedNemotronHHostWeights. fix(#730): the NemotronH refusal subcase downcast a stub, so UBSan was reporting real type confusion #784's substance is kept: noStubModel, no downcast onto an object that never was aNemotronHLoadedModel, no UB.Filed for traceability, per AGENTS.md "every change starts from an issue"; it is fixed in the same flow.