GORM Playground Link

https://github.com/go-gorm/playground/pull/735

Description

When using Join and Preload together, if we get more than 20 entries in the database it will panic (I guess due to this beeing 20)

gorm version 1.25.10

obtained stack trace:

Error Trace:    /home/emilien/Workspace/src/github.com/emilienkofman/playground/main_test.go:34
            Error:          func (assert.PanicTestFunc)(0xc9e8a0) should not panic
                                Panic value:    reflect: slice length out of range in SetLen
                                Panic stack:    goroutine 24 [running]:
                            runtime/debug.Stack()
                                /home/emilien/Workspace/go/src/runtime/debug/stack.go:24 +0x6b
                            github.com/stretchr/testify/assert.didPanic.func1()
                                /home/emilien/go/pkg/mod/github.com/stretchr/testify@v1.8.1/assert/assertions.go:1050 +0x73
                            panic({0xdf8380?, 0xf6ffd0?})
                                /home/emilien/Workspace/go/src/runtime/panic.go:770 +0x136
                            reflect.Value.SetLen({0xc0003fb100, 0xc00044f068, 0x197}, 0x15)
                                /home/emilien/Workspace/go/src/reflect/value.go:2423 +0x85
                            gorm.io/gorm/callbacks.preloadEntryPoint(0xc000488c00, {0xc0003dfeb0, 0x1, 0x1}, 0xc000444a28, 0xc000488660, {0x0, 0x0, 0x0})
                                /home/emilien/Workspace/src/github.com/emilienkofman/playground/gorm/callbacks/preload.go:128 +0x745
                            gorm.io/gorm/callbacks.Preload(0xc000488600)
                                /home/emilien/Workspace/src/github.com/emilienkofman/playground/gorm/callbacks/query.go:283 +0x4f7
                            gorm.io/gorm.(*processor).Execute(0xc0003feaf0, 0xc000488600)
                                /home/emilien/Workspace/src/github.com/emilienkofman/playground/gorm/callbacks.go:130 +0x67c
                            gorm.io/gorm.(*DB).Find(0xc000488600, {0xde9280, 0xc00044e258}, {0x0, 0x0, 0x0})
                                /home/emilien/Workspace/src/github.com/emilienkofman/playground/gorm/finisher_api.go:170 +0x285
                            gorm.io/playground.TestGORM.func1()
                                /home/emilien/Workspace/src/github.com/emilienkofman/playground/main_test.go:38 +0xac
                            github.com/stretchr/testify/assert.didPanic(0xc0003de590)
                                /home/emilien/go/pkg/mod/github.com/stretchr/testify@v1.8.1/assert/assertions.go:1055 +0x119
                            github.com/stretchr/testify/assert.NotPanics({0xf71740, 0xc0000f51e0}, 0xc0003de590, {0x0, 0x0, 0x0})
                                /home/emilien/go/pkg/mod/github.com/stretchr/testify@v1.8.1/assert/assertions.go:1126 +0x12c
                            gorm.io/playground.TestGORM(0xc0000f51e0)
                                /home/emilien/Workspace/src/github.com/emilienkofman/playground/main_test.go:34 +0x459
                            testing.tRunner(0xc0000f51e0, 0xf26bb0)
                                /home/emilien/Workspace/go/src/testing/testing.go:1689 +0x1da
                            created by testing.(*T).Run in goroutine 1
                                /home/emilien/Workspace/go/src/testing/testing.go:1742 +0x7d3

the test case is inspired with https://github.com/go-gorm/gorm/issues/6715 and likely related to the fix of that previous issue (but I've not been investigating enough)

https://github.com/go-gorm/gorm/issues/6715

Comment From: emilienkofman

looks like this was introduced in https://github.com/go-gorm/gorm/commit/85299bfca7172489d7f93a5525ee5ab0d92d514b

@a631807682 do you have any insight on how to fix that? Let me know if I can help. I'm not sure exactly what to do at the moment.

Comment From: a631807682

looks like this was introduced in 85299bf

@a631807682 do you have any insight on how to fix that? Let me know if I can help. I'm not sure exactly what to do at the moment.

Cap and Len are not handled correctly here, we need to handle them correctly, or avoid them through Append. Are you interested to create a PR for it?

Comment From: pedro-rijo-deel

for anyone else bumping into this: seems like this issue has been fixed in #7014 which has been released in v1.25.11 (not sure why this issue is still open, probably there's a good reason for that which i'm not aware 😄 )

Comment From: emilienkofman

for anyone else bumping into this: seems like this issue has been fixed in #7014 which has been released in v1.25.11 (not sure why this issue is still open, probably there's a good reason for that which i'm not aware 😄 )

Closed, no good reason