Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

opt: stack overflow caused by RejectNullsUnderJoinLeft #64661

Closed
RaduBerinde opened this issue May 4, 2021 · 9 comments · Fixed by #64698
Closed

opt: stack overflow caused by RejectNullsUnderJoinLeft #64661

RaduBerinde opened this issue May 4, 2021 · 9 comments · Fixed by #64698
Assignees
Labels
C-bug Code not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior. S-2-temp-unavailability Temp crashes or other availability problems. Can be worked around or resolved by restarting.

Comments

@RaduBerinde
Copy link
Member

On v20.2.6:

goroutine 22417 [running]:
github.com/cockroachdb/cockroach/pkg/sql/opt/constraint.(*KeyContext).Next(0xc0265225e8, 0x0, 0x649cee0, 0x97d78c0, 0x0, 0x0, 0x0)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/constraint/key.go:304 +0x16d fp=0xc026522350 sp=0xc026522348 pc=0x22b874d
github.com/cockroachdb/cockroach/pkg/sql/opt/constraint.Key.Next(0x649cee0, 0x97d78c0, 0x0, 0x0, 0x0, 0xc0265225e8, 0x0, 0x0, 0x0, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/constraint/key.go:221 +0x143 fp=0xc026522470 sp=0xc026522350 pc=0x22b7c03
github.com/cockroachdb/cockroach/pkg/sql/opt/constraint.(*Span).PreferInclusive(0xc026522610, 0xc0265225e8)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/constraint/span.go:297 +0x1b9 fp=0xc026522580 sp=0xc026522470 pc=0x22ba0e9
github.com/cockroachdb/cockroach/pkg/sql/opt/memo.(*constraintsBuilder).singleSpan(0xc026522db0, 0x19, 0x649cee0, 0x97d78c0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/memo/constraint_builder.go:548 +0x128 fp=0xc026522678 sp=0xc026522580 pc=0x2401998
github.com/cockroachdb/cockroach/pkg/sql/opt/memo.(*constraintsBuilder).notNullSpan(...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/memo/constraint_builder.go:554
github.com/cockroachdb/cockroach/pkg/sql/opt/memo.(*constraintsBuilder).buildSingleColumnConstraintConst(0xc026522db0, 0x6c00000019, 0x649cee0, 0x97d78c0, 0x0, 0x0)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/memo/constraint_builder.go:126 +0xfad fp=0xc026522a20 sp=0xc026522678 pc=0x23ff37d
github.com/cockroachdb/cockroach/pkg/sql/opt/memo.(*constraintsBuilder).buildSingleColumnConstraint(0xc026522db0, 0x6c00000019, 0x6354e20, 0x9775650, 0x4cbb180, 0x4eba6e0)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/memo/constraint_builder.go:89 +0x82f fp=0xc026522cf0 sp=0xc026522a20 pc=0x23fe2ef
github.com/cockroachdb/cockroach/pkg/sql/opt/memo.(*constraintsBuilder).buildConstraints(0xc026522db0, 0x6392a80, 0xc003c6b4a0, 0x6354420, 0xc003c6b4a0)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/memo/constraint_builder.go:532 +0x2cc fp=0xc026522d88 sp=0xc026522cf0 pc=0x240126c
github.com/cockroachdb/cockroach/pkg/sql/opt/memo.(*logicalPropsBuilder).buildFiltersItemProps(0xc0022fe940, 0xc001abd440, 0xc001abd450)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/memo/logical_props_builder.go:1392 +0xaf fp=0xc026522dd0 sp=0xc026522d88 pc=0x24b90ff
github.com/cockroachdb/cockroach/pkg/sql/opt/memo.(*FiltersItem).PopulateProps(...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/memo/expr.og.go:7990
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructFiltersItem(0xc00501fab0, 0x6392a80, 0xc003c6b4a0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:10531 +0xd0 fp=0xc026522e00 sp=0xc026522dd0 pc=0x253cac0
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*CustomFuncs).MakeNullRejectFilters(0xc00501fac0, 0x2000000, 0x0, 0x0, 0x2000000, 0x0)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/reject_nulls_funcs.go:256 +0x1cc fp=0xc026522f68 sp=0xc026522e00 pc=0x25bbbac
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2915 +0x3f1c fp=0xc026523b20 sp=0xc026522f68 pc=0x24fffec
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc0265246d8 sp=0xc026523b20 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026525290 sp=0xc0265246d8 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026525e48 sp=0xc026525290 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026526a00 sp=0xc026525e48 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc0265275b8 sp=0xc026526a00 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026528170 sp=0xc0265275b8 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026528d28 sp=0xc026528170 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc0265298e0 sp=0xc026528d28 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02652a498 sp=0xc0265298e0 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02652b050 sp=0xc02652a498 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02652bc08 sp=0xc02652b050 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02652c7c0 sp=0xc02652bc08 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02652d378 sp=0xc02652c7c0 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02652df30 sp=0xc02652d378 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02652eae8 sp=0xc02652df30 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02652f6a0 sp=0xc02652eae8 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026530258 sp=0xc02652f6a0 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026530e10 sp=0xc026530258 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc0265319c8 sp=0xc026530e10 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026532580 sp=0xc0265319c8 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026533138 sp=0xc026532580 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026533cf0 sp=0xc026533138 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc0265348a8 sp=0xc026533cf0 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026535460 sp=0xc0265348a8 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026536018 sp=0xc026535460 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026536bd0 sp=0xc026536018 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026537788 sp=0xc026536bd0 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026538340 sp=0xc026537788 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026538ef8 sp=0xc026538340 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026539ab0 sp=0xc026538ef8 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02653a668 sp=0xc026539ab0 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02653b220 sp=0xc02653a668 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02653bdd8 sp=0xc02653b220 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02653c990 sp=0xc02653bdd8 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02653d548 sp=0xc02653c990 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02653e100 sp=0xc02653d548 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02653ecb8 sp=0xc02653e100 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02653f870 sp=0xc02653ecb8 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026540428 sp=0xc02653f870 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026540fe0 sp=0xc026540428 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026541b98 sp=0xc026540fe0 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026542750 sp=0xc026541b98 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026543308 sp=0xc026542750 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026543ec0 sp=0xc026543308 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026544a78 sp=0xc026543ec0 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026545630 sp=0xc026544a78 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc0265461e8 sp=0xc026545630 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026546da0 sp=0xc0265461e8 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026547958 sp=0xc026546da0 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026548510 sp=0xc026547958 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc0265490c8 sp=0xc026548510 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026549c80 sp=0xc0265490c8 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02654a838 sp=0xc026549c80 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02654b3f0 sp=0xc02654a838 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02654bfa8 sp=0xc02654b3f0 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02654cb60 sp=0xc02654bfa8 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02654d718 sp=0xc02654cb60 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02654e2d0 sp=0xc02654d718 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02654ee88 sp=0xc02654e2d0 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02654fa40 sp=0xc02654ee88 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc0265505f8 sp=0xc02654fa40 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc0265511b0 sp=0xc0265505f8 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026551d68 sp=0xc0265511b0 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026552920 sp=0xc026551d68 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc0265534d8 sp=0xc026552920 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026554090 sp=0xc0265534d8 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026554c48 sp=0xc026554090 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026555800 sp=0xc026554c48 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc0265563b8 sp=0xc026555800 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026556f70 sp=0xc0265563b8 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026557b28 sp=0xc026556f70 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc0265586e0 sp=0xc026557b28 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026559298 sp=0xc0265586e0 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026559e50 sp=0xc026559298 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02655aa08 sp=0xc026559e50 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02655b5c0 sp=0xc02655aa08 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02655c178 sp=0xc02655b5c0 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02655cd30 sp=0xc02655c178 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02655d8e8 sp=0xc02655cd30 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02655e4a0 sp=0xc02655d8e8 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02655f058 sp=0xc02655e4a0 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc02655fc10 sp=0xc02655f058 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc0265607c8 sp=0xc02655fc10 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026561380 sp=0xc0265607c8 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026561f38 sp=0xc026561380 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026562af0 sp=0xc026561f38 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc0265636a8 sp=0xc026562af0 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026564260 sp=0xc0265636a8 pc=0x250008a
github.com/cockroachdb/cockroach/pkg/sql/opt/norm.(*Factory).ConstructInnerJoin(0xc00501fab0, 0x649b400, 0xc004e90418, 0x649b4a0, 0xc003dd3158, 0xc0026cca20, 0x1, 0x1, 0xc004ba0a58, 0x0, ...)
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/opt/norm/factory.og.go:2912 +0x3fba fp=0xc026564e18 sp=0xc026564260 pc=0x250008a
created by github.com/cockroachdb/cockroach/pkg/sql/pgwire.(*conn).processCommandsAsync
	/go/src/github.com/cockroachdb/cockroach/pkg/sql/pgwire/conn.go:554 +0x17e

factory.og.go:2912 is RejectNullsUnderJoinLeft.

@RaduBerinde RaduBerinde added the C-bug Code not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior. label May 4, 2021
@RaduBerinde
Copy link
Member Author

The loop would be explained if we pushed down an x IS NOT NULL filter and the column is still nullable in the result. Unfortunately, there is a lot of possible surface area there.

@mgartner
Copy link
Collaborator

mgartner commented May 4, 2021

@RaduBerinde do you have a query to reproduce this?

@joshimhoff
Copy link
Collaborator

joshimhoff commented May 4, 2021

@RaduBerinde do you have a query to reproduce this?

I'm gonna kindly beat my drum re: query dumps from crash time: #52815

(This issue happened in CC prod.)

@RaduBerinde
Copy link
Member Author

@RaduBerinde do you have a query to reproduce this?

That would be too easy :)

@RaduBerinde
Copy link
Member Author

Actually, what is required for this loop is that we push down an x IS NOT NULL filter and x still shows up in the RejectNullCols in the result. So we only need to audit the DeriveRejectNullCols, which seems to have very few "base cases". I looked at it a bit and couldn't find a potential problem, yet.

@mgartner
Copy link
Collaborator

mgartner commented May 4, 2021

A cycle in the memo could cause this, so I thought it could be related to #58437, but that landed in v20.2.4. It could still be a cycle in the memo, but I'm not sure whether this would be the first function that would recurse forever — there would be many recursive functions that would if there was a cycle.

@RaduBerinde
Copy link
Member Author

RaduBerinde commented May 4, 2021

The stack clearly indicates repeated application of RejectNullsUnderJoinLeft, so it's a normalization rule cycle.

@mgartner
Copy link
Collaborator

mgartner commented May 4, 2021

Oops, I misunderstood your previous comment and incorrectly read it as repeated calls to DeriveRejectNullCols. Sorry for the noise.

@RaduBerinde RaduBerinde added the S-2-temp-unavailability Temp crashes or other availability problems. Can be worked around or resolved by restarting. label May 4, 2021
@RaduBerinde RaduBerinde self-assigned this May 4, 2021
@RaduBerinde
Copy link
Member Author

I've been staring at this code for the better part of the day. The only thing that I could find that is problematic is deriveScanRejectNullCols which can in principle present a non-null column as null-reject. This can only happen with a non-canonical scan, but I managed to find a case which triggers it. The query was designed so that the PushJoinIntoIndexJoin would create a join between scan b and def.

CREATE TABLE abc (
  a INT PRIMARY KEY,
  b INT,
  c INT,
  INDEX (c) WHERE (b IS NOT NULL),                                                                                                                                          
  INDEX (b) 
);
CREATE TABLE def (
  d INT PRIMARY KEY,                                                                                                                                                        
  e INT,                                                                                                                                                                    
  f INT 
) ;
SELECT * FROM abc JOIN def ON b=1 AND a=d AND b<f;

craig bot pushed a commit that referenced this issue May 5, 2021
64662: storage/cloud: delegate redaction and implicit auth checks r=dt a=dt

storage/cloud: make implicit auth check funciton of conf

Previously we had two methods that dug through ExternalStorage URI params:
One, which extracted the params to create a structured config that would
actually be used to open and interact with that storage, and a second that
looked for authorization-releated params to decide if access was explicitly
or implicitly authorized (i.e. had credentials specified, or made use of the
access the node performing the action had).

This changes the latter to instead be a function of the former, so there is
only one method that extracts parameters from string URIs to produce a structured
configuration object, and then the determination of if a given configuration is
one that carries explicit authorization can be done from that config object.

storage/cloud: make implementations register redaction params

This changes the redaction of URIs from being done from a pre-defined map
of sensitive params to a runtime populated map, in which implementations
register their sensitive params during their registration during init.

Release note: none.

64695: deps: update golang.org/x/text to 0.3.6 r=knz a=rafiss

fixes #63559

Release note (sql change): Collated strings may now have a locale that
is a language tag, followed by a `-u-` suffix, followed by anything
else. For example, any locale with a prefix of `en-US-u-` is now
considered valid.

64698: opt: fix null reject rule cycle r=RaduBerinde a=RaduBerinde

Fixing a corner case where we are requesting null rejection on a
non-null Scan column. This causes a stack overflow.

We also add an assertion that would have caught this (and returned an
internal error instead of crashing the node).

Fixes #64661.

Release note (bug fix): fixed a stack overflow that can happen in some
cornercases involving partial indexes with predicates containing `(x
IS NOT NULL)`.

64718: geos/BUILD.bzl: missing `-lm` r=rickystewart,rail a=knz

Fixes #64713.

The math functions are not included in libc in BSD.

Release note: None

Co-authored-by: David Taylor <tinystatemachine@gmail.com>
Co-authored-by: Rafi Shamim <rafi@cockroachlabs.com>
Co-authored-by: Radu Berinde <radu@cockroachlabs.com>
Co-authored-by: Raphael 'kena' Poss <knz@thaumogen.net>
@craig craig bot closed this as completed in e786bc6 May 5, 2021
RaduBerinde added a commit to RaduBerinde/cockroach that referenced this issue May 5, 2021
Fixing a corner case where we are requesting null rejection on a
non-null Scan column. This causes a stack overflow.

We also add an assertion that would have caught this (and returned an
internal error instead of crashing the node).

Fixes cockroachdb#64661.

Release note (bug fix): fixed a stack overflow that can happen in some
cornercases involving partial indexes with predicates containing `(x
IS NOT NULL)`.
RaduBerinde added a commit that referenced this issue May 7, 2021
Fixing a corner case where we are requesting null rejection on a
non-null Scan column. This causes a stack overflow.

We also add an assertion that would have caught this (and returned an
internal error instead of crashing the node).

Fixes #64661.

Release note (bug fix): fixed a stack overflow that can happen in some
cornercases involving partial indexes with predicates containing `(x
IS NOT NULL)`.
RaduBerinde added a commit to RaduBerinde/cockroach that referenced this issue May 13, 2021
Fixing a corner case where we are requesting null rejection on a
non-null Scan column. This causes a stack overflow.

We also add an assertion that would have caught this (and returned an
internal error instead of crashing the node).

Fixes cockroachdb#64661.

Release note (bug fix): fixed a stack overflow that can happen in some
cornercases involving partial indexes with predicates containing `(x
IS NOT NULL)`.
@mgartner mgartner moved this to Done in SQL Queries Jul 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-bug Code not up to spec/doc, specs & docs deemed correct. Solution expected to change code/behavior. S-2-temp-unavailability Temp crashes or other availability problems. Can be worked around or resolved by restarting.
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

3 participants