Repository: gohugoio/hugo (language: go)

Issue:
Fatal error: concurrent map read and map write in v0.137.1 but not in v0.136.0
### What version of Hugo are you using (`hugo version`)?

<pre>
$ hugo version
hugo v0.137.1-17e15b2148cee6da923acd7adf2ec31ea6b3415c darwin/amd64 BuildDate=2024-11-05T11:49:09Z VendorInfo=gohugoio
</pre>

### Does this issue reproduce with the latest release?

Yes.

### Error Log

```
➜ hugo
WARN  deprecated: site config key paginate was deprecated in Hugo v0.128.0 and will be removed in a future release. Use pagination.pagerSize instead.
Start building sites …
hugo v0.137.1-17e15b2148cee6da923acd7adf2ec31ea6b3415c darwin/amd64 BuildDate=2024-11-05T11:49:09Z VendorInfo=gohugoio

fatal error: concurrent map read and map write

goroutine 54 [running]:
github.com/gohugoio/hugo/hugolib.(*contentTreeReverseIndex).Get(0xc0003f09f0, {0x2606fc0, 0xc001807da8})
        /root/project/hugo/hugolib/content_map_page.go:975 +0x65
github.com/gohugoio/hugo/hugolib.(*pageFinder).getContentNodeForRef(0xc000080e28, {0x0, 0x0}, 0x0, 0x0, {0xc000514920, 0x7}, {0xc000a0fa84, 0xa})
        /root/project/hugo/hugolib/pagecollections.go:216 +0x51f
github.com/gohugoio/hugo/hugolib.(*pageFinder).getContentNode(0xc000080e28, {0x0, 0x0}, 0x0, {0xc000514920, 0x7?})
        /root/project/hugo/hugolib/pagecollections.go:143 +0x2bf
github.com/gohugoio/hugo/hugolib.(*pageFinder).getPage(0x0?, {0x0?, 0x0?}, {0xc000514920?, 0x2606fc0?})
        /root/project/hugo/hugolib/pagecollections.go:59 +0x2e
github.com/gohugoio/hugo/hugolib.(*pageFinder).getPageForRefs(0xc000080e28, {0xc0018fe7c0, 0x1, 0x1})
        /root/project/hugo/hugolib/pagecollections.go:113 +0x199
github.com/gohugoio/hugo/hugolib.(*Site).GetPage(0x4?, {0xc0018fe7c0?, 0xc001ab6300?, 0x4?})
        /root/project/hugo/hugolib/site.go:1377 +0x27
github.com/gohugoio/hugo/resources/page.(*siteWrapper).GetPage(0x2?, {0xc0018fe7c0?, 0x0?, 0x1076af3?})
        /root/project/hugo/resources/page/site.go:202 +0x22
reflect.Value.call({0x28646a0?, 0xc0003f1c70?, 0x98?}, {0x2898dfe, 0x4}, {0xc001b95110, 0x1, 0x99?})
        /usr/local/go/src/reflect/value.go:581 +0xca6
reflect.Value.Call({0x28646a0?, 0xc0003f1c70?, 0x196?}, {0xc001b95110?, 0x3f3c3c8?, 0x2798620?})
        /usr/local/go/src/reflect/value.go:365 +0xb9
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.safeCall({0x28646a0?, 0xc0003f1c70?, 0xc0018f6340?}, {0xc001b95110?, 0x2dafa28?, 0x2606fc0?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/funcs.go:375 +0x86
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalCall(0xc001809c28, {0x2798620?, 0xc0018f6340?, 0x23c2ebb?}, {0x28646a0?, 0xc0003f1c70?, 0xc00076d7b2?}, 0x0, {0x2d91910, 0xc00014d3c0}, ...)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/hugo_template.go:360 +0xe68
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalField(0xc001809c28, {0x2798620?, 0xc0018f6340?, 0x4?}, {0xc00076d7b7, 0x7}, {0x2d91910, 0xc00014d3c0}, {0xc00002bb40, 0x2, ...}, ...)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/hugo_template.go:190 +0x3db
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalFieldChain(0xc001809c28, {0x2798620?, 0xc0018f6340?, 0x0?}, {0x265f0e0?, 0xc001b90f70?, 0x0?}, {0x2d91910, 0xc00014d3c0}, {0xc000763e60, ...}, ...)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:613 +0x1d5
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalChainNode(0xc001809c28, {0x2798620?, 0xc0018f6340?, 0x1?}, 0xc00014d3c0, {0xc00002bb40, 0x2, 0x2}, {0x26a63c0, 0x3eb2d40, ...})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:590 +0x1fd
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalCommand(0xc001809c28, {0x2798620?, 0xc0018f6340?, 0x0?}, 0xc000774f30, {0x26a63c0?, 0x3eb2d40?, 0x0?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:507 +0x214
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalPipeline(0xc001809c28, {0x2798620?, 0xc0018f6340?, 0xc001890300?}, 0xc000770d80)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:479 +0x125
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalArg(0xc001809c28, {0x2798620?, 0xc0018f6340?, 0x2?}, {0x0, 0x0}, {0x2d918c8, 0xc000770d80})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:890 +0x346
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalChainNode(0xc001809c28, {0x2798620?, 0xc0018f6340?, 0xc001b950c8?}, 0xc00014d400, {0x0, 0x0, 0x0}, {0x26a63c0, 0x3eb2d40, ...})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:589 +0x158
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalArg(0xc001809c28, {0x2798620?, 0xc0018f6340?, 0x26697c0?}, {0x2dafa28, 0x265f0e0}, {0x2d91910, 0xc00014d400})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:894 +0x2e6
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalCall(0xc001809c28, {0x2798620?, 0xc0018f6340?, 0x2798620?}, {0x26697c0?, 0xc0003f0be0?, 0x1e831e5?}, 0x0, {0x2d91ac0, 0xc000774ed0}, ...)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/hugo_template.go:321 +0x62a
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalFunction(0xc001809c28, {0x2798620?, 0xc0018f6340?, 0x1?}, 0x1?, {0x2d91ac0, 0xc000774ed0}, {0xc00014d480, 0x3, 0x4}, ...)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/hugo_template.go:147 +0x36e
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalCommand(0xc001809c28, {0x2798620?, 0xc0018f6340?, 0xc001809678?}, 0xc000774ed0, {0x26a63c0?, 0x3eb2d40?, 0x2?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:510 +0x1d4
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalPipeline(0xc001809c28, {0x2798620?, 0xc0018f6340?, 0xc001809c28?}, 0xc000770d20)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:479 +0x125
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).walk(0xc001809c28, {0x2798620?, 0xc0018f6340?, 0x288b2c0?}, {0x2d91958?, 0xc000774fc0})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:267 +0x14f
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).walk(0xc001809c28, {0x2798620?, 0xc0018f6340?, 0x26a63c0?}, {0x2d91760?, 0xc000774a80?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:280 +0x2db
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).walkRange.func2({0x2607200?, 0x3a886a0?, 0xc0002f39d0?}, {0x2798620?, 0xc0018f6340?, 0xc001809908?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:395 +0x2b2
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).walkRange(0xc001809c28, {0x288b2c0?, 0xc0002f39d0?, 0xc0002f39d0?}, 0xc00014d800)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:403 +0x615
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).walk(0xc001809c28, {0x288b2c0?, 0xc0002f39d0?, 0xc000d28930?}, {0x2d91a30?, 0xc00014d800?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:283 +0xcd
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).walk(0xc001809c28, {0x288b2c0?, 0xc0002f39d0?, 0x3f3ba68?}, {0x2d91760?, 0xc00076b8f0?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:280 +0x2db
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*Template).executeWithState(0x7a68dbceaf6d6d4a?, 0xc0013a3c28, {0x288b2c0?, 0xc0002f39d0?, 0xc000748460?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/hugo_template.go:103 +0x125
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*executer).ExecuteWithContext(0xc0005767a0, {0x2d8c2c0, 0xc001416090}, {0x4aee6be0, 0xc000748460}, {0x2d7c220, 0xc001273680}, {0x288b2c0, 0xc0002f39d0})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/hugo_template.go:90 +0x2f9
github.com/gohugoio/hugo/tpl/tplimpl.(*templateExec).ExecuteWithContext(0xc00094b650, {0x2d8c2c0, 0xc001416090}, {0x2d85020, 0xc000748460}, {0x2d7c220, 0xc001273680}, {0x288b2c0, 0xc0002f39d0})
        /root/project/hugo/tpl/tplimpl/template.go:267 +0x634
github.com/gohugoio/hugo/tpl/partials.(*Namespace).include(0xc0003f18f0, {0x2d8c2c0, 0xc001416090}, {0xc000239a14, 0xb}, {0xc000a92d50?, 0x390e0ef32d07f30d?, 0xa768a5b3b7b160d9?})
        /root/project/hugo/tpl/partials/partials.go:202 +0x3fd
github.com/gohugoio/hugo/tpl/partials.(*Namespace).includWithTimeout.func1()
        /root/project/hugo/tpl/partials/partials.go:138 +0x48
created by github.com/gohugoio/hugo/tpl/partials.(*Namespace).includWithTimeout in goroutine 83
        /root/project/hugo/tpl/partials/partials.go:137 +0x1bf

goroutine 1 [semacquire]:
sync.runtime_Semacquire(0xc0003d3b30?)
        /usr/local/go/src/runtime/sema.go:71 +0x25
sync.(*WaitGroup).Wait(0x273fa00?)
        /usr/local/go/src/sync/waitgroup.go:118 +0x48
golang.org/x/sync/errgroup.(*Group).Wait(0xc000405980)
        /root/project/gomodcache/golang.org/x/sync@v0.8.0/errgroup/errgroup.go:56 +0x25
github.com/gohugoio/hugo/commands.(*hugoBuilder).fullBuild(0xc000575e80, 0x0)
        /root/project/hugo/commands/hugobuilder.go:564 +0x325
github.com/gohugoio/hugo/commands.(*hugoBuilder).build(0xc000575e80)
        /root/project/hugo/commands/hugobuilder.go:397 +0x65
github.com/gohugoio/hugo/commands.(*rootCommand).Run.func1(0xc000575e80?, 0xc000323a00?)
        /root/project/hugo/commands/commandeer.go:384 +0x85
github.com/gohugoio/hugo/commands.(*rootCommand).Run(0xc000590b40, {0x0?, 0x0?}, 0xc000323a00, {0x1e696a2000000000?, 0xc000553a20?, 0x0?})
        /root/project/hugo/commands/commandeer.go:389 +0x12e
github.com/bep/simplecobra.(*Commandeer).compile.func1(0xc00040c400?, {0x3eb2d40?, 0x4?, 0x2898a76?})
        /root/project/gomodcache/github.com/bep/simplecobra@v0.4.0/simplecobra.go:113 +0x4c
github.com/spf13/cobra.(*Command).execute(0xc00058e308, {0xc00003e180, 0x0, 0x0})
        /root/project/gomodcache/github.com/spf13/cobra@v1.8.1/command.go:985 +0xaaa
github.com/spf13/cobra.(*Command).ExecuteC(0xc00058e308)
        /root/project/gomodcache/github.com/spf13/cobra@v1.8.1/command.go:1117 +0x3ff
github.com/spf13/cobra.(*Command).ExecuteContextC(...)
        /root/project/gomodcache/github.com/spf13/cobra@v1.8.1/command.go:1050
github.com/bep/simplecobra.(*Exec).Execute(0xc000080e78, {0x2d8c1e0?, 0x3eb2d40?}, {0xc00003e180?, 0x3f46ea8?, 0x4aa0dea8?})
        /root/project/gomodcache/github.com/bep/simplecobra@v0.4.0/simplecobra.go:155 +0xd4
github.com/gohugoio/hugo/commands.Execute({0xc00003e180, 0x0, 0x0})
        /root/project/hugo/commands/commandeer.go:69 +0x2f3
main.main()
        /root/project/hugo/main.go:25 +0x56

goroutine 49 [runnable]:
syscall.syscall(0x9?, 0xc001a86000?, 0x80000000000?, 0x7ffff80000000000?)
        /usr/local/go/src/runtime/sys_darwin.go:27 +0x58
syscall.write(0xc000d2c180?, {0xc001a86000?, 0x800000?, 0xc001386550?})
        /usr/local/go/src/syscall/zsyscall_darwin_amd64.go:1709 +0x45
syscall.Write(...)
        /usr/local/go/src/syscall/syscall_unix.go:211
internal/poll.ignoringEINTRIO(...)
        /usr/local/go/src/internal/poll/fd_unix.go:745
internal/poll.(*FD).Write(0xc000d2c180, {0xc001a86000, 0x8000, 0x8000})
        /usr/local/go/src/internal/poll/fd_unix.go:381 +0x394
os.(*File).write(...)
        /usr/local/go/src/os/file_posix.go:46
os.(*File).Write(0xc0007a8150, {0xc001a86000?, 0x8000, 0x106dc01?})
        /usr/local/go/src/os/file.go:195 +0x51
io.copyBuffer({0x4ae85598, 0xc0000e1e80}, {0x4ae855b8, 0xc000d4a060}, {0x0, 0x0, 0x0})
        /usr/local/go/src/io/io.go:431 +0x1de
io.Copy(...)
        /usr/local/go/src/io/io.go:388
github.com/spf13/fsync.(*Syncer).sync(0xc001387d48, {0xc0009f80c0, 0x1d}, {0xc0009f80e0, 0x1d})
        /root/project/gomodcache/github.com/spf13/fsync@v0.10.1/fsync.go:175 +0x72b
github.com/spf13/fsync.(*Syncer).sync.func1({0x4ae84558, 0xc0009be280})
        /root/project/gomodcache/github.com/spf13/fsync@v0.10.1/fsync.go:201 +0x134
github.com/spf13/fsync.withDirEntry({0x2d9a520?, 0xc000602000?}, {0xc000d0e7d0?, 0x3e15090?}, 0xc001386cd0)
        /root/project/gomodcache/github.com/spf13/fsync@v0.10.1/fsync.go:345 +0x282
github.com/spf13/fsync.(*Syncer).sync(0xc001387d48, {0xc000d0e7c0, 0xf}, {0xc000d0e7d0, 0xf})
        /root/project/gomodcache/github.com/spf13/fsync@v0.10.1/fsync.go:198 +0x3c5
github.com/spf13/fsync.(*Syncer).sync.func1({0x4ae84558, 0xc000cc8d40})
        /root/project/gomodcache/github.com/spf13/fsync@v0.10.1/fsync.go:201 +0x134
github.com/spf13/fsync.withDirEntry({0x2d9a520?, 0xc000602000?}, {0xc000d0e760?, 0x3e15090?}, 0xc001387088)
        /root/project/gomodcache/github.com/spf13/fsync@v0.10.1/fsync.go:345 +0x282
github.com/spf13/fsync.(*Syncer).sync(0xc001387d48, {0xc000d0e750, 0xc}, {0xc000d0e760, 0xc})
        /root/project/gomodcache/github.com/spf13/fsync@v0.10.1/fsync.go:198 +0x3c5
github.com/spf13/fsync.(*Syncer).sync.func1({0x4ae84558, 0xc000cc8b80})
        /root/project/gomodcache/github.com/spf13/fsync@v0.10.1/fsync.go:201 +0x134
github.com/spf13/fsync.withDirEntry({0x2d9a520?, 0xc000602000?}, {0xc000d0e620?, 0x3e15090?}, 0xc001387440)
        /root/project/gomodcache/github.com/spf13/fsync@v0.10.1/fsync.go:345 +0x282
github.com/spf13/fsync.(*Syncer).sync(0xc001387d48, {0xc000d0e610, 0x9}, {0xc000d0e620, 0x9})
        /root/project/gomodcache/github.com/spf13/fsync@v0.10.1/fsync.go:198 +0x3c5
github.com/spf13/fsync.(*Syncer).sync.func1({0x4ae84558, 0xc000aad540})
        /root/project/gomodcache/github.com/spf13/fsync@v0.10.1/fsync.go:201 +0x134
github.com/spf13/fsync.withDirEntry({0x2d9a520?, 0xc000602000?}, {0xc000a0e458?, 0x3e15090?}, 0xc0013877f8)
        /root/project/gomodcache/github.com/spf13/fsync@v0.10.1/fsync.go:345 +0x282
github.com/spf13/fsync.(*Syncer).sync(0xc001387d48, {0xc000a0e440, 0x4}, {0xc000a0e458, 0x4})
        /root/project/gomodcache/github.com/spf13/fsync@v0.10.1/fsync.go:198 +0x3c5
github.com/spf13/fsync.(*Syncer).sync.func1({0x4ae84558, 0xc000b16600})
        /root/project/gomodcache/github.com/spf13/fsync@v0.10.1/fsync.go:201 +0x134
github.com/spf13/fsync.withDirEntry({0x2d9a520?, 0xc000602000?}, {0x2d755f0?, 0x3e15090?}, 0xc001387bb0)
        /root/project/gomodcache/github.com/spf13/fsync@v0.10.1/fsync.go:345 +0x282
github.com/spf13/fsync.(*Syncer).sync(0xc001387d48, {0x2d755f0, 0x1}, {0x2d755f0, 0x1})
        /root/project/gomodcache/github.com/spf13/fsync@v0.10.1/fsync.go:198 +0x3c5
github.com/spf13/fsync.(*Syncer).syncRecover(0xc000b0cd48?, {0x2d755f0?, 0x1?}, {0x2d755f0?, 0x1?})
        /root/project/gomodcache/github.com/spf13/fsync@v0.10.1/fsync.go:138 +0x5b
github.com/spf13/fsync.(*Syncer).Sync(0xc000b0cd48, {0x2d755f0, 0x1}, {0x2d755f0, 0x1})
        /root/project/gomodcache/github.com/spf13/fsync@v0.10.1/fsync.go:109 +0xa5
github.com/gohugoio/hugo/commands.(*hugoBuilder).copyStaticTo(0xc000575e80, 0xc0003226c0)
        /root/project/hugo/commands/hugobuilder.go:472 +0x26c
github.com/gohugoio/hugo/commands.(*hugoBuilder).doWithPublishDirs(0xc000575e80, 0xc001387f08)
        /root/project/hugo/commands/hugobuilder.go:499 +0x14f
github.com/gohugoio/hugo/commands.(*hugoBuilder).copyStatic(0x0?)
        /root/project/hugo/commands/hugobuilder.go:430 +0x29
github.com/gohugoio/hugo/commands.(*hugoBuilder).fullBuild.func2()
        /root/project/hugo/commands/hugobuilder.go:534 +0x25
golang.org/x/sync/errgroup.(*Group).Go.func1()
        /root/project/gomodcache/golang.org/x/sync@v0.8.0/errgroup/errgroup.go:78 +0x50
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 1
        /root/project/gomodcache/golang.org/x/sync@v0.8.0/errgroup/errgroup.go:75 +0x96

goroutine 50 [chan send]:
github.com/gohugoio/hugo/hugolib.(*Site).renderPages.func1({0xc000053770?, 0xc0001844d0?}, {0x2d90b78?, 0xc000313650?}, 0x50?)
        /root/project/hugo/hugolib/site_render.go:94 +0xa5
github.com/gohugoio/hugo/hugolib/doctree.(*NodeShiftTreeWalker[...]).Walk.func1({0x288b2c0, 0xc000313650})
        /root/project/hugo/hugolib/doctree/nodeshifttree.go:377 +0xf7
github.com/armon/go-radix.recursiveWalk(0xc000c02f00, 0xc000e0b6d8)
        /root/project/gomodcache/github.com/armon/go-radix@v1.0.1-0.20221118154546-54df44f2176c/radix.go:523 +0x43
github.com/armon/go-radix.recursiveWalk(0xc000c62f00, 0xc000e0b6d8)
        /root/project/gomodcache/github.com/armon/go-radix@v1.0.1-0.20221118154546-54df44f2176c/radix.go:532 +0x96
github.com/armon/go-radix.recursiveWalk(0xc000b51860, 0xc000e0b6d8)
        /root/project/gomodcache/github.com/armon/go-radix@v1.0.1-0.20221118154546-54df44f2176c/radix.go:532 +0x96
github.com/armon/go-radix.recursiveWalk(0xc0009a8fc0, 0xc000e0b6d8)
        /root/project/gomodcache/github.com/armon/go-radix@v1.0.1-0.20221118154546-54df44f2176c/radix.go:532 +0x96
github.com/armon/go-radix.recursiveWalk(0xc0009f1560, 0xc000e0b6d8)
        /root/project/gomodcache/github.com/armon/go-radix@v1.0.1-0.20221118154546-54df44f2176c/radix.go:532 +0x96
github.com/armon/go-radix.recursiveWalk(0xc0009f1530, 0xc000e0b6d8)
        /root/project/gomodcache/github.com/armon/go-radix@v1.0.1-0.20221118154546-54df44f2176c/radix.go:532 +0x96
github.com/armon/go-radix.recursiveWalk(0xc00032f2f0, 0xc000e0b6d8)
        /root/project/gomodcache/github.com/armon/go-radix@v1.0.1-0.20221118154546-54df44f2176c/radix.go:532 +0x96
github.com/armon/go-radix.(*Tree).Walk(...)
        /root/project/gomodcache/github.com/armon/go-radix@v1.0.1-0.20221118154546-54df44f2176c/radix.go:453
github.com/gohugoio/hugo/hugolib/doctree.(*NodeShiftTreeWalker[...]).Walk(0x0?, {0x0?, 0x0?})
        /root/project/hugo/hugolib/doctree/nodeshifttree.go:387 +0x10a
github.com/gohugoio/hugo/hugolib.(*Site).renderPages(0xc000003080, 0xc001272930)
        /root/project/hugo/hugolib/site_render.go:102 +0x292
github.com/gohugoio/hugo/hugolib.(*Site).render(0xc000003080, 0xc001272930)
        /root/project/hugo/hugolib/site.go:1565 +0x6c
github.com/gohugoio/hugo/hugolib.(*HugoSites).render.func2(0xc0000539e8, 0x0?, 0xc0005bf8c0, 0xc001272930, 0x0?, 0xc0006b2f80, {0x2d93950, 0xc000332b40}, 0xc0000539f0)
        /root/project/hugo/hugolib/hugo_sites_build.go:392 +0x43d
github.com/gohugoio/hugo/hugolib.(*HugoSites).render(0xc0005bf8c0, {0x2d93950?, 0xc000332b40?}, 0xc0006b2f80)
        /root/project/hugo/hugolib/hugo_sites_build.go:400 +0x5ba
github.com/gohugoio/hugo/hugolib.(*HugoSites).Build(0xc0005bf8c0, {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, {0x0, ...})
        /root/project/hugo/hugolib/hugo_sites_build.go:169 +0x746
github.com/gohugoio/hugo/commands.(*hugoBuilder).buildSites(0x0?, 0x0)
        /root/project/hugo/commands/hugobuilder.go:425 +0x10d
github.com/gohugoio/hugo/commands.(*hugoBuilder).fullBuild.func3()
        /root/project/hugo/commands/hugobuilder.go:542 +0x1b
golang.org/x/sync/errgroup.(*Group).Go.func1()
        /root/project/gomodcache/golang.org/x/sync@v0.8.0/errgroup/errgroup.go:78 +0x50
created by golang.org/x/sync/errgroup.(*Group).Go in goroutine 1
        /root/project/gomodcache/golang.org/x/sync@v0.8.0/errgroup/errgroup.go:75 +0x96

goroutine 51 [select]:
github.com/gohugoio/hugo/cache/dynacache.(*Cache).start.func1()
        /root/project/hugo/cache/dynacache/dynacache.go:314 +0x8d
created by github.com/gohugoio/hugo/cache/dynacache.(*Cache).start in goroutine 50
        /root/project/hugo/cache/dynacache/dynacache.go:312 +0x9d

goroutine 8 [chan receive]:
github.com/gohugoio/hugo/hugolib.(*HugoSites).Build.func3(0xc0005789a0, 0xc0000a2e70)
        /root/project/hugo/hugolib/hugo_sites_build.go:91 +0x7e
created by github.com/gohugoio/hugo/hugolib.(*HugoSites).Build in goroutine 50
        /root/project/hugo/hugolib/hugo_sites_build.go:88 +0x3f9

goroutine 27 [select]:
github.com/gohugoio/hugo/tpl/partials.(*Namespace).includWithTimeout(0xc0003f18f0, {0x2d8c2c0, 0xc0013170b0}, {0xc000239a14, 0xb}, {0xc001968a40, 0x1, 0x1})
        /root/project/hugo/tpl/partials/partials.go:141 +0x251
github.com/gohugoio/hugo/tpl/partials.(*Namespace).IncludeCached.func1({0x101592b?, 0x3f3dfe8?})
        /root/project/hugo/tpl/partials/partials.go:240 +0x151
github.com/bep/lazycache.(*Cache[...]).GetOrCreate.func1(0xc0012e65f7?, 0xc001924540, {0xc000b44b70?, 0x0?}, 0x0?, 0x0?)
        /root/project/gomodcache/github.com/bep/lazycache@v0.7.0/lazycache.go:140 +0x106
github.com/bep/lazycache.(*Cache[...]).GetOrCreate(0x2db1d40, {0xc000b44b70, 0x13}, 0xc0012e67e0)
        /root/project/gomodcache/github.com/bep/lazycache@v0.7.0/lazycache.go:144 +0x23c
github.com/gohugoio/hugo/tpl/partials.(*Namespace).IncludeCached(0xc0003f18f0, {0x2d8c2c0, 0xc0013170b0}, {0xc000239a14, 0xb}, {0x288b2c0, 0xc00011d260}, {0xc0019689d0, 0x1, 0x1})
        /root/project/hugo/tpl/partials/partials.go:232 +0x30d
reflect.Value.call({0x26cc240?, 0xc0003f1940?, 0x27395a8?}, {0x2898dfe, 0x4}, {0xc001924480, 0x4, 0x2545ff5?})
        /usr/local/go/src/reflect/value.go:581 +0xca6
reflect.Value.Call({0x26cc240?, 0xc0003f1940?, 0xc0012e6fd0?}, {0xc001924480?, 0x2739560?, 0x2dafa28?})
        /usr/local/go/src/reflect/value.go:365 +0xb9
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.safeCall({0x26cc240?, 0xc0003f1940?, 0xc0013170b0?}, {0xc001924480?, 0x2dafa28?, 0x26fc180?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/funcs.go:375 +0x86
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalCall(0xc0012e7730, {0x288b2c0?, 0xc00011d260?, 0xc00011d260?}, {0x26cc240?, 0xc0003f1940?, 0x26b0cc0?}, 0x0, {0x2d91ac0, 0xc001a5d080}, ...)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/hugo_template.go:360 +0xe68
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalFunction(0xc0012e7730, {0x288b2c0?, 0xc00011d260?, 0xc00011d260?}, 0xc0012e7468?, {0x2d91ac0, 0xc001a5d080}, {0xc001a5e740, 0x4, 0x4}, ...)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/hugo_template.go:145 +0x465
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalCommand(0xc0012e7730, {0x288b2c0?, 0xc00011d260?, 0x26b30c0?}, 0xc001a5d080, {0x26a63c0?, 0x3eb2d40?, 0x26073c0?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:510 +0x1d4
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalPipeline(0xc0012e7730, {0x288b2c0?, 0xc00011d260?, 0xc00011d260?}, 0xc001a5ad20)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:479 +0x125
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).walk(0xc0012e7730, {0x288b2c0?, 0xc00011d260?, 0xc001317860?}, {0x2d91958?, 0xc001a5d110})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:267 +0x14f
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).walk(0xc0012e7730, {0x288b2c0?, 0xc00011d260?, 0x3f3b108?}, {0x2d91760?, 0xc001a5c840?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:280 +0x2db
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*Template).executeWithState(0x5?, 0xc0012e7730, {0x288b2c0?, 0xc00011d260?, 0xc000748d20?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/hugo_template.go:103 +0x125
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*executer).ExecuteWithContext(0xc0005767a0, {0x2d8c2c0, 0xc0013170b0}, {0x4aee6be0, 0xc000748d20}, {0x2d7c220, 0xc001317050}, {0x288b2c0, 0xc00011d260})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/hugo_template.go:90 +0x2f9
github.com/gohugoio/hugo/tpl/tplimpl.(*templateExec).ExecuteWithContext(0xc00094b650, {0x2d8c2c0, 0xc0013170b0}, {0x2d85020, 0xc000748d20}, {0x2d7c220, 0xc001317050}, {0x288b2c0, 0xc00011d260})
        /root/project/hugo/tpl/tplimpl/template.go:267 +0x634
github.com/gohugoio/hugo/hugolib.(*Site).renderForTemplate(0xc00011d260?, {0x2d8c2c0?, 0xc0013170b0?}, {0x2896635, 0x3}, {0x28b8e66?, 0x8?}, {0x288b2c0?, 0xc00011d260?}, {0x2d7c220, ...}, ...)
        /root/project/hugo/hugolib/site.go:1515 +0xa3
github.com/gohugoio/hugo/hugolib.(*Site).renderAndWritePage(0xc000003080, 0xc00018e1f0, {0x0?, 0x0?}, {0xc000b11550, 0x9}, 0xc00011d260, {0x288b2c0, 0xc00011d260}, {0x2d85020, ...})
        /root/project/hugo/hugolib/site.go:1420 +0x26b
github.com/gohugoio/hugo/hugolib.pageRenderer(0xc001272930, 0xc000003080, 0xc000293730, 0xc000d18850, 0x0?)
        /root/project/hugo/hugolib/site_render.go:178 +0x513
created by github.com/gohugoio/hugo/hugolib.(*Site).renderPages in goroutine 50
        /root/project/hugo/hugolib/site_render.go:80 +0x10a

goroutine 28 [runnable]:
reflect.Value.call({0x262c540?, 0x2bc2df8?, 0x1a320fa?}, {0x2898dfe, 0x4}, {0xc00151f860, 0x1, 0x16?})
        /usr/local/go/src/reflect/value.go:603 +0xd05
reflect.Value.Call({0x262c540?, 0x2bc2df8?, 0xc001a2ca88?}, {0xc00151f860?, 0x2606fc0?, 0x2dafa28?})
        /usr/local/go/src/reflect/value.go:365 +0xb9
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.safeCall({0x262c540?, 0x2bc2df8?, 0xc00151d7a0?}, {0xc00151f860?, 0x2dafa28?, 0x265f0e0?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/funcs.go:375 +0x86
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalCall(0xc001a2d730, {0x2870a20?, 0xc00189a808?, 0x2d917f0?}, {0x262c540?, 0x2bc2df8?, 0x1e834b5?}, 0x0, {0x2d91ac0, 0xc000e96f00}, ...)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/hugo_template.go:360 +0xe68
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalFunction(0xc001a2d730, {0x2870a20?, 0xc00189a808?, 0xc001a2d730?}, 0x2870a20?, {0x2d91ac0, 0xc000e96f00}, {0xc000949270, 0x1, 0x1}, ...)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/hugo_template.go:147 +0x36e
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalCommand(0xc001a2d730, {0x2870a20?, 0xc00189a808?, 0x2870a20?}, 0xc000e96f00, {0x2606fc0?, 0xc00151d7a0?, 0xc0003d6f70?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:510 +0x1d4
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalPipeline(0xc001a2d730, {0x2870a20?, 0xc00189a808?, 0xc00189a7f8?}, 0xc0001073e0)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:479 +0x125
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).walk(0xc001a2d730, {0x2870a20?, 0xc00189a808?, 0xc001a2d098?}, {0x2d91958?, 0xc0003eb6b0})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:267 +0x14f
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).walk(0xc001a2d730, {0x2870a20?, 0xc00189a808?, 0xc000113bcd?}, {0x2d91760?, 0xc0003eb5f0?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:280 +0x2db
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).walkIfOrWith(0xc001a2d730, 0xa, {0x2870a20?, 0xc00189a808?, 0x3eb2d40?}, 0x99?, 0xc0003eb5f0, 0x0)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:310 +0x12a
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).walk(0xc001a2d730, {0x2870a20?, 0xc00189a808?, 0x288b2c0?}, {0x2d919a0?, 0xc0003d4e40?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:277 +0x125
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).walk(0xc001a2d730, {0x2870a20?, 0xc00189a808?, 0x94?}, {0x2d91760?, 0xc0003eb560?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:280 +0x2db
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).walkRange.func2({0x2607200?, 0x3a88aa0?, 0xc00011d490?}, {0x2870a20?, 0xc00189a808?, 0x10764bf?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:395 +0x2b2
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).walkRange(0xc001a2d730, {0x288b2c0?, 0xc00011d490?, 0x2606fc0?}, 0xc0003d4e80)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:403 +0x615
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).walk(0xc001a2d730, {0x288b2c0?, 0xc00011d490?, 0xc000e97290?}, {0x2d91a30?, 0xc0003d4e80?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:283 +0xcd
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).walk(0xc001a2d730, {0x288b2c0?, 0xc00011d490?, 0x3f3b5b8?}, {0x2d91760?, 0xc0003eb380?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:280 +0x2db
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*Template).executeWithState(0x4?, 0xc001a2d730, {0x288b2c0?, 0xc00011d490?, 0xc00051c460?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/hugo_template.go:103 +0x125
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*executer).ExecuteWithContext(0xc0005767a0, {0x2d8c2c0, 0xc000e96450}, {0x4aee6be0, 0xc00051c460}, {0x2d7c220, 0xc000e173b0}, {0x288b2c0, 0xc00011d490})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/hugo_template.go:90 +0x2f9
github.com/gohugoio/hugo/tpl/tplimpl.(*templateExec).ExecuteWithContext(0xc00094b650, {0x2d8c2c0, 0xc000e96450}, {0x2d85020, 0xc00051c460}, {0x2d7c220, 0xc000e173b0}, {0x288b2c0, 0xc00011d490})
        /root/project/hugo/tpl/tplimpl/template.go:267 +0x634
github.com/gohugoio/hugo/hugolib.(*Site).renderForTemplate(0xc00011d490?, {0x2d8c2c0?, 0xc000e96450?}, {0x28a69ed, 0x7}, {0x28a69ed?, 0x3?}, {0x288b2c0?, 0xc00011d490?}, {0x2d7c220, ...}, ...)
        /root/project/hugo/hugolib/site.go:1515 +0xa3
github.com/gohugoio/hugo/hugolib.(*Site).renderAndWritePage(0xc000003080, 0xc00018e1f0, {0x0?, 0x0?}, {0xc000b115d0, 0xc}, 0xc00011d490, {0x288b2c0, 0xc00011d490}, {0x2d85020, ...})
        /root/project/hugo/hugolib/site.go:1420 +0x26b
github.com/gohugoio/hugo/hugolib.pageRenderer(0xc001272930, 0xc000003080, 0xc000293730, 0xc000d18850, 0x0?)
        /root/project/hugo/hugolib/site_render.go:178 +0x513
created by github.com/gohugoio/hugo/hugolib.(*Site).renderPages in goroutine 50
        /root/project/hugo/hugolib/site_render.go:80 +0x10a

goroutine 29 [select]:
github.com/gohugoio/hugo/tpl/partials.(*Namespace).includWithTimeout(0xc0003f18f0, {0x2d8c2c0, 0xc0017d5e60}, {0xc000239a14, 0xb}, {0xc001968cd0, 0x1, 0x1})
        /root/project/hugo/tpl/partials/partials.go:141 +0x251
github.com/gohugoio/hugo/tpl/partials.(*Namespace).IncludeCached.func1({0x101592b?, 0x3f3dfe8?})
        /root/project/hugo/tpl/partials/partials.go:240 +0x151
github.com/bep/lazycache.(*Cache[...]).GetOrCreate.func1(0xc0017405f7?, 0xc001924780, {0xc000b44ba0?, 0x0?}, 0x0?, 0x0?)
        /root/project/gomodcache/github.com/bep/lazycache@v0.7.0/lazycache.go:140 +0x106
github.com/bep/lazycache.(*Cache[...]).GetOrCreate(0x2db1d40, {0xc000b44ba0, 0x14}, 0xc0017407e0)
        /root/project/gomodcache/github.com/bep/lazycache@v0.7.0/lazycache.go:144 +0x23c
github.com/gohugoio/hugo/tpl/partials.(*Namespace).IncludeCached(0xc0003f18f0, {0x2d8c2c0, 0xc0017d5e60}, {0xc000239a14, 0xb}, {0x288b2c0, 0xc00011c9a0}, {0xc001968c60, 0x1, 0x1})
        /root/project/hugo/tpl/partials/partials.go:232 +0x30d
reflect.Value.call({0x26cc240?, 0xc0003f1940?, 0x27395a8?}, {0x2898dfe, 0x4}, {0xc0019246c0, 0x4, 0x2545ff5?})
        /usr/local/go/src/reflect/value.go:581 +0xca6
reflect.Value.Call({0x26cc240?, 0xc0003f1940?, 0xc001740fd0?}, {0xc0019246c0?, 0x2739560?, 0x2dafa28?})
        /usr/local/go/src/reflect/value.go:365 +0xb9
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.safeCall({0x26cc240?, 0xc0003f1940?, 0xc0017d5e60?}, {0xc0019246c0?, 0x2dafa28?, 0x26fc180?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/funcs.go:375 +0x86
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalCall(0xc001741730, {0x288b2c0?, 0xc00011c9a0?, 0xc00011c9a0?}, {0x26cc240?, 0xc0003f1940?, 0x26b0cc0?}, 0x0, {0x2d91ac0, 0xc001746d80}, ...)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/hugo_template.go:360 +0xe68
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalFunction(0xc001741730, {0x288b2c0?, 0xc00011c9a0?, 0xc00011c9a0?}, 0xc001741468?, {0x2d91ac0, 0xc001746d80}, {0xc001748800, 0x4, 0x4}, ...)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/hugo_template.go:145 +0x465
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalCommand(0xc001741730, {0x288b2c0?, 0xc00011c9a0?, 0x26b30c0?}, 0xc001746d80, {0x26a63c0?, 0x3eb2d40?, 0x26073c0?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:510 +0x1d4
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalPipeline(0xc001741730, {0x288b2c0?, 0xc00011c9a0?, 0xc00011c9a0?}, 0xc00172fd40)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:479 +0x125
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).walk(0xc001741730, {0x288b2c0?, 0xc00011c9a0?, 0xc0017debd0?}, {0x2d91958?, 0xc001746e10})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:267 +0x14f
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).walk(0xc001741730, {0x288b2c0?, 0xc00011c9a0?, 0x3f3bf18?}, {0x2d91760?, 0xc001746540?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:280 +0x2db
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*Template).executeWithState(0x5?, 0xc001741730, {0x288b2c0?, 0xc00011c9a0?, 0xc0005f6500?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/hugo_template.go:103 +0x125
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*executer).ExecuteWithContext(0xc0005767a0, {0x2d8c2c0, 0xc0017d5e60}, {0x4aee6be0, 0xc0005f6500}, {0x2d7c220, 0xc00179e9c0}, {0x288b2c0, 0xc00011c9a0})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/hugo_template.go:90 +0x2f9
github.com/gohugoio/hugo/tpl/tplimpl.(*templateExec).ExecuteWithContext(0xc00094b650, {0x2d8c2c0, 0xc0017d5e60}, {0x2d85020, 0xc0005f6500}, {0x2d7c220, 0xc00179e9c0}, {0x288b2c0, 0xc00011c9a0})
        /root/project/hugo/tpl/tplimpl/template.go:267 +0x634
github.com/gohugoio/hugo/hugolib.(*Site).renderForTemplate(0xc00011c9a0?, {0x2d8c2c0?, 0xc0017d5e60?}, {0x28ac0d4, 0x8}, {0x2898ab6?, 0x8?}, {0x288b2c0?, 0xc00011c9a0?}, {0x2d7c220, ...}, ...)
        /root/project/hugo/hugolib/site.go:1515 +0xa3
github.com/gohugoio/hugo/hugolib.(*Site).renderAndWritePage(0xc000003080, 0xc00018e1f0, {0x0?, 0x0?}, {0xc000e86ae0, 0x16}, 0xc00011c9a0, {0x288b2c0, 0xc00011c9a0}, {0x2d85020, ...})
        /root/project/hugo/hugolib/site.go:1420 +0x26b
github.com/gohugoio/hugo/hugolib.pageRenderer(0xc001272930, 0xc000003080, 0xc000293730, 0xc000d18850, 0x0?)
        /root/project/hugo/hugolib/site_render.go:178 +0x513
created by github.com/gohugoio/hugo/hugolib.(*Site).renderPages in goroutine 50
        /root/project/hugo/hugolib/site_render.go:80 +0x10a

goroutine 183 [runnable]:
sync.runtime_SemacquireMutex(0x101592b?, 0x88?, 0xc000a93d60?)
        /usr/local/go/src/runtime/sema.go:95 +0x25
sync.(*Mutex).lockSlow(0x3e85360)
        /usr/local/go/src/sync/mutex.go:173 +0x15d
sync.(*Mutex).Lock(...)
        /usr/local/go/src/sync/mutex.go:92
sync.(*RWMutex).Lock(0x3e85360?)
        /usr/local/go/src/sync/rwmutex.go:148 +0x31
github.com/gohugoio/hugo/common/hreflect.GetMethodIndexByName({0x2dafa28, 0x2798620}, {0xc00076d719, 0x3})
        /root/project/hugo/common/hreflect/helpers.go:157 +0x128
github.com/gohugoio/hugo/common/hreflect.GetMethodByName({0x2798620?, 0xc000225ea0?, 0x28c21c2?}, {0xc00076d719, 0x3})
        /root/project/hugo/common/hreflect/helpers.go:137 +0x71
github.com/gohugoio/hugo/tpl/tplimpl.(*templateExecHelper).GetMethod(0xc0000b93c0, {0x2d8c2c0, 0xc000e05350}, {0x4aee6be0, 0xc000748460}, {0x2798620?, 0xc000225ea0?, 0xc000f8a260?}, {0xc00076d719, 0x3})
        /root/project/hugo/tpl/tplimpl/template_funcs.go:137 +0x270
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalField(0xc000f8bc28, {0x2798620?, 0xc0018f6340?, 0x10?}, {0xc00076d719, 0x3}, {0x2d917f0, 0xc000774bd0}, {0xc000f8a5f0, 0x1, ...}, ...)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/hugo_template.go:180 +0x2c8
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalFieldChain(0xc000f8bc28, {0x2798620?, 0xc0018f6340?, 0x28?}, {0x2798620?, 0xc0018f6340?, 0x106f1e2?}, {0x2d917f0, 0xc000774bd0}, {0xc000763d60, ...}, ...)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:613 +0x1d5
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalFieldNode(...)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:577
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalArg(0xc000f8bc28, {0x2798620?, 0xc0018f6340?, 0x26913c0?}, {0x2dafa28, 0x265f0e0}, {0x2d917f0, 0xc000774bd0})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:886 +0x445
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalCall(0xc000f8bc28, {0x2798620?, 0xc0018f6340?, 0x23c2ebb?}, {0x2852b00?, 0xc000080f88?, 0xc00076d706?}, 0x0, {0x2d91910, 0xc00014d200}, ...)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/hugo_template.go:321 +0x62a
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalField(0xc000f8bc28, {0x2798620?, 0xc0018f6340?, 0x0?}, {0xc00076d70e, 0x9}, {0x2d91910, 0xc00014d200}, {0xc00014d280, 0x3, ...}, ...)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/hugo_template.go:190 +0x3db
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalFieldChain(0xc000f8bc28, {0x2798620?, 0xc0018f6340?, 0x0?}, {0x265f0e0?, 0xc000a93d70?, 0x0?}, {0x2d91910, 0xc00014d200}, {0xc000763d40, ...}, ...)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:613 +0x1d5
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalChainNode(0xc000f8bc28, {0x2798620?, 0xc0018f6340?, 0x0?}, 0xc00014d200, {0xc00014d280, 0x3, 0x4}, {0x26a63c0, 0x3eb2d40, ...})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:590 +0x1fd
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalCommand(0xc000f8bc28, {0x2798620?, 0xc0018f6340?, 0x1?}, 0xc000774b70, {0x26a63c0?, 0x3eb2d40?, 0x1?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:507 +0x214
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalPipeline(0xc000f8bc28, {0x2798620?, 0xc0018f6340?, 0x0?}, 0xc000770c00)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:479 +0x125
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalArg(0xc000f8bc28, {0x2798620?, 0xc0018f6340?, 0x2698fa0?}, {0x2dafa28, 0x265f0e0}, {0x2d918c8, 0xc000770c00})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:890 +0x346
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalCall(0xc000f8bc28, {0x2798620?, 0xc0018f6340?, 0xc001a12540?}, {0x2698fa0?, 0xc0003f0ca0?, 0x26bac40?}, 0x0, {0x2d91ac0, 0xc000774b10}, ...)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/hugo_template.go:321 +0x62a
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalFunction(0xc000f8bc28, {0x2798620?, 0xc0018f6340?, 0xc00076d6ca?}, 0xc001b24a00?, {0x2d91ac0, 0xc000774b10}, {0xc00014d2c0, 0x4, 0x4}, ...)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/hugo_template.go:147 +0x36e
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalCommand(0xc000f8bc28, {0x2798620?, 0xc0018f6340?, 0x0?}, 0xc000774b10, {0x26a63c0?, 0x3eb2d40?, 0x26bac40?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:510 +0x1d4
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalPipeline(0xc000f8bc28, {0x2798620?, 0xc0018f6340?, 0x94?}, 0xc000770ba0)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:479 +0x125
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalCommand(0xc000f8bc28, {0x2798620?, 0xc0018f6340?, 0xc000f8b678?}, 0xc000774ae0, {0x26a63c0?, 0x3eb2d40?, 0x2?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:514 +0x272
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).evalPipeline(0xc000f8bc28, {0x2798620?, 0xc0018f6340?, 0xc000f8bc28?}, 0xc000770b40)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:479 +0x125
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).walk(0xc000f8bc28, {0x2798620?, 0xc0018f6340?, 0x288b2c0?}, {0x2d91958?, 0xc000774d20})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:267 +0x14f
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).walk(0xc000f8bc28, {0x2798620?, 0xc0018f6340?, 0x26a63c0?}, {0x2d91760?, 0xc000774a80?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:280 +0x2db
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).walkRange.func2({0x2607200?, 0x3a886a0?, 0xc00011cfc0?}, {0x2798620?, 0xc0018f6340?, 0xc000f8b908?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:395 +0x2b2
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).walkRange(0xc000f8bc28, {0x288b2c0?, 0xc00011cfc0?, 0xc00011cfc0?}, 0xc00014d800)
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:403 +0x615
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).walk(0xc000f8bc28, {0x288b2c0?, 0xc00011cfc0?, 0xc001b20ae0?}, {0x2d91a30?, 0xc00014d800?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:283 +0xcd
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*state).walk(0xc000f8bc28, {0x288b2c0?, 0xc00011cfc0?, 0x3f3d688?}, {0x2d91760?, 0xc00076b8f0?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/exec.go:280 +0x2db
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*Template).executeWithState(0x0?, 0xc001112c28, {0x288b2c0?, 0xc00011cfc0?, 0xc000748460?})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/hugo_template.go:103 +0x125
github.com/gohugoio/hugo/tpl/internal/go_templates/texttemplate.(*executer).ExecuteWithContext(0xc0005767a0, {0x2d8c2c0, 0xc000e05350}, {0x4aee6be0, 0xc000748460}, {0x2d7c220, 0xc001317b00}, {0x288b2c0, 0xc00011cfc0})
        /root/project/hugo/tpl/internal/go_templates/texttemplate/hugo_template.go:90 +0x2f9
github.com/gohugoio/hugo/tpl/tplimpl.(*templateExec).ExecuteWithContext(0xc00094b650, {0x2d8c2c0, 0xc000e05350}, {0x2d85020, 0xc000748460}, {0x2d7c220, 0xc001317b00}, {0x288b2c0, 0xc00011cfc0})
        /root/project/hugo/tpl/tplimpl/template.go:267 +0x634
github.com/gohugoio/hugo/tpl/partials.(*Namespace).include(0xc0003f18f0, {0x2d8c2c0, 0xc000e05350}, {0xc000239a14, 0xb}, {0xc001b222e0?, 0x0?, 0x0?})
        /root/project/hugo/tpl/partials/partials.go:202 +0x3fd
github.com/gohugoio/hugo/tpl/partials.(*Namespace).includWithTimeout.func1()
        /root/project/hugo/tpl/partials/partials.go:138 +0x48
created by github.com/gohugoio/hugo/tpl/partials.(*Namespace).includWithTimeout in goroutine 31
        /root/project/hugo/tpl/partials/partials.go:137 +0x1bf

...
```


Discussion / hints:
I run about 10 times or 15 or so and then it worked

```
❯ hugo build
WARN  deprecated: site config key paginate was deprecated in Hugo v0.128.0 and will be removed in a future release. Use pagination.pagerSize instead.
Start building sites …
hugo v0.137.1-17e15b2148cee6da923acd7adf2ec31ea6b3415c darwin/amd64 BuildDate=2024-11-05T11:49:09Z VendorInfo=gohugoio


                   | EN
-------------------+------
  Pages            | 541
  Paginator pages  |  54
  Non-page files   |   0
  Static files     | 158
  Processed images |   0
  Aliases          | 172
  Cleaned          |   0

Total in 778 ms

```
The error doesn't appear in v0.136.0. So it's something between 136-137.1 release error. I tested on Linux and on Darwin. Both show the fatal error.

Fix patch:
diff --git a/common/maps/cache.go b/common/maps/cache.go
index 0175974b5b4..cdc31a68467 100644
--- a/common/maps/cache.go
+++ b/common/maps/cache.go
@@ -13,11 +13,14 @@
 
 package maps
 
-import "sync"
+import (
+	"sync"
+)
 
 // Cache is a simple thread safe cache backed by a map.
 type Cache[K comparable, T any] struct {
-	m map[K]T
+	m                  map[K]T
+	hasBeenInitialized bool
 	sync.RWMutex
 }
 
@@ -34,11 +37,16 @@ func (c *Cache[K, T]) Get(key K) (T, bool) {
 		return zero, false
 	}
 	c.RLock()
-	v, found := c.m[key]
+	v, found := c.get(key)
 	c.RUnlock()
 	return v, found
 }
 
+func (c *Cache[K, T]) get(key K) (T, bool) {
+	v, found := c.m[key]
+	return v, found
+}
+
 // GetOrCreate gets the value for the given key if it exists, or creates it if not.
 func (c *Cache[K, T]) GetOrCreate(key K, create func() (T, error)) (T, error) {
 	c.RLock()
@@ -61,13 +69,49 @@ func (c *Cache[K, T]) GetOrCreate(key K, create func() (T, error)) (T, error) {
 	return v, nil
 }
 
+// InitAndGet initializes the cache if not already done and returns the value for the given key.
+// The init state will be reset on Reset or Drain.
+func (c *Cache[K, T]) InitAndGet(key K, init func(get func(key K) (T, bool), set func(key K, value T)) error) (T, error) {
+	var v T
+	c.RLock()
+	if !c.hasBeenInitialized {
+		c.RUnlock()
+		if err := func() error {
+			c.Lock()
+			defer c.Unlock()
+			// Double check in case another goroutine has initialized it in the meantime.
+			if !c.hasBeenInitialized {
+				err := init(c.get, c.set)
+				if err != nil {
+					return err
+				}
+				c.hasBeenInitialized = true
+			}
+			return nil
+		}(); err != nil {
+			return v, err
+		}
+		// Reacquire the read lock.
+		c.RLock()
+	}
+
+	v = c.m[key]
+	c.RUnlock()
+
+	return v, nil
+}
+
 // Set sets the given key to the given value.
 func (c *Cache[K, T]) Set(key K, value T) {
 	c.Lock()
-	c.m[key] = value
+	c.set(key, value)
 	c.Unlock()
 }
 
+func (c *Cache[K, T]) set(key K, value T) {
+	c.m[key] = value
+}
+
 // ForEeach calls the given function for each key/value pair in the cache.
 func (c *Cache[K, T]) ForEeach(f func(K, T)) {
 	c.RLock()
@@ -81,6 +125,7 @@ func (c *Cache[K, T]) Drain() map[K]T {
 	c.Lock()
 	m := c.m
 	c.m = make(map[K]T)
+	c.hasBeenInitialized = false
 	c.Unlock()
 	return m
 }
@@ -94,6 +139,7 @@ func (c *Cache[K, T]) Len() int {
 func (c *Cache[K, T]) Reset() {
 	c.Lock()
 	c.m = make(map[K]T)
+	c.hasBeenInitialized = false
 	c.Unlock()
 }
 
diff --git a/hugolib/content_map_page.go b/hugolib/content_map_page.go
index 5e8646b21c4..8c9e4a31a2f 100644
--- a/hugolib/content_map_page.go
+++ b/hugolib/content_map_page.go
@@ -37,7 +37,6 @@ import (
 	"github.com/gohugoio/hugo/hugolib/doctree"
 	"github.com/gohugoio/hugo/hugolib/pagesfromdata"
 	"github.com/gohugoio/hugo/identity"
-	"github.com/gohugoio/hugo/lazy"
 	"github.com/gohugoio/hugo/media"
 	"github.com/gohugoio/hugo/output"
 	"github.com/gohugoio/hugo/resources"
@@ -925,59 +924,58 @@ func newPageMap(i int, s *Site, mcache *dynacache.Cache, pageTrees *pageTrees) *
 		s: s,
 	}
 
-	m.pageReverseIndex = &contentTreeReverseIndex{
-		initFn: func(rm map[any]contentNodeI) {
-			add := func(k string, n contentNodeI) {
-				existing, found := rm[k]
-				if found && existing != ambiguousContentNode {
-					rm[k] = ambiguousContentNode
-				} else if !found {
-					rm[k] = n
-				}
+	m.pageReverseIndex = newContentTreeTreverseIndex(func(get func(key any) (contentNodeI, bool), set func(key any, val contentNodeI)) {
+		add := func(k string, n contentNodeI) {
+			existing, found := get(k)
+			if found && existing != ambiguousContentNode {
+				set(k, ambiguousContentNode)
+			} else if !found {
+				set(k, n)
 			}
+		}
 
-			w := &doctree.NodeShiftTreeWalker[contentNodeI]{
-				Tree:     m.treePages,
-				LockType: doctree.LockTypeRead,
-				Handle: func(s string, n contentNodeI, match doctree.DimensionFlag) (bool, error) {
-					p := n.(*pageState)
-					if p.PathInfo() != nil {
-						add(p.PathInfo().BaseNameNoIdentifier(), p)
-					}
-					return false, nil
-				},
-			}
+		w := &doctree.NodeShiftTreeWalker[contentNodeI]{
+			Tree:     m.treePages,
+			LockType: doctree.LockTypeRead,
+			Handle: func(s string, n contentNodeI, match doctree.DimensionFlag) (bool, error) {
+				p := n.(*pageState)
+				if p.PathInfo() != nil {
+					add(p.PathInfo().BaseNameNoIdentifier(), p)
+				}
+				return false, nil
+			},
+		}
 
-			if err := w.Walk(context.Background()); err != nil {
-				panic(err)
-			}
-		},
-		contentTreeReverseIndexMap: &contentTreeReverseIndexMap{},
-	}
+		if err := w.Walk(context.Background()); err != nil {
+			panic(err)
+		}
+	})
 
 	return m
 }
 
+func newContentTreeTreverseIndex(init func(get func(key any) (contentNodeI, bool), set func(key any, val contentNodeI))) *contentTreeReverseIndex {
+	return &contentTreeReverseIndex{
+		initFn: init,
+		mm:     maps.NewCache[any, contentNodeI](),
+	}
+}
+
 type contentTreeReverseIndex struct {
-	initFn func(rm map[any]contentNodeI)
-	*contentTreeReverseIndexMap
+	initFn func(get func(key any) (contentNodeI, bool), set func(key any, val contentNodeI))
+	mm     *maps.Cache[any, contentNodeI]
 }
 
 func (c *contentTreeReverseIndex) Reset() {
-	c.init.ResetWithLock().Unlock()
+	c.mm.Reset()
 }
 
 func (c *contentTreeReverseIndex) Get(key any) contentNodeI {
-	c.init.Do(func() {
-		c.m = make(map[any]contentNodeI)
-		c.initFn(c.contentTreeReverseIndexMap.m)
+	v, _ := c.mm.InitAndGet(key, func(get func(key any) (contentNodeI, bool), set func(key any, val contentNodeI)) error {
+		c.initFn(get, set)
+		return nil
 	})
-	return c.m[key]
-}
-
-type contentTreeReverseIndexMap struct {
-	init lazy.OnceMore
-	m    map[any]contentNodeI
+	return v
 }
 
 type sitePagesAssembler struct {
diff --git a/lazy/init.go b/lazy/init.go
index bef3867a9a0..7b88a53518b 100644
--- a/lazy/init.go
+++ b/lazy/init.go
@@ -36,7 +36,7 @@ type Init struct {
 	prev     *Init
 	children []*Init
 
-	init OnceMore
+	init onceMore
 	out  any
 	err  error
 	f    func(context.Context) (any, error)
diff --git a/lazy/once.go b/lazy/once.go
index dac689df393..cea0966523b 100644
--- a/lazy/once.go
+++ b/lazy/once.go
@@ -24,13 +24,13 @@ import (
 // * it can be reset, so the action can be repeated if needed
 // * it has methods to check if it's done or in progress
 
-type OnceMore struct {
+type onceMore struct {
 	mu   sync.Mutex
 	lock uint32
 	done uint32
 }
 
-func (t *OnceMore) Do(f func()) {
+func (t *onceMore) Do(f func()) {
 	if atomic.LoadUint32(&t.done) == 1 {
 		return
 	}
@@ -53,15 +53,15 @@ func (t *OnceMore) Do(f func()) {
 	f()
 }
 
-func (t *OnceMore) InProgress() bool {
+func (t *onceMore) InProgress() bool {
 	return atomic.LoadUint32(&t.lock) == 1
 }
 
-func (t *OnceMore) Done() bool {
+func (t *onceMore) Done() bool {
 	return atomic.LoadUint32(&t.done) == 1
 }
 
-func (t *OnceMore) ResetWithLock() *sync.Mutex {
+func (t *onceMore) ResetWithLock() *sync.Mutex {
 	t.mu.Lock()
 	defer atomic.StoreUint32(&t.done, 0)
 	return &t.mu


Test patch:
diff --git a/hugolib/content_map_test.go b/hugolib/content_map_test.go
index bf992007171..a9f719f4a83 100644
--- a/hugolib/content_map_test.go
+++ b/hugolib/content_map_test.go
@@ -17,9 +17,11 @@ import (
 	"fmt"
 	"path/filepath"
 	"strings"
+	"sync"
 	"testing"
 
 	qt "github.com/frankban/quicktest"
+	"github.com/gohugoio/hugo/identity"
 )
 
 func TestContentMapSite(t *testing.T) {
@@ -396,3 +398,77 @@ irrelevant
 		"<loc>https://example.org/en/sitemap.xml</loc>",
 	)
 }
+
+func TestContentTreeReverseIndex(t *testing.T) {
+	t.Parallel()
+
+	c := qt.New(t)
+
+	pageReverseIndex := newContentTreeTreverseIndex(
+		func(get func(key any) (contentNodeI, bool), set func(key any, val contentNodeI)) {
+			for i := 0; i < 10; i++ {
+				key := fmt.Sprint(i)
+				set(key, &testContentNode{key: key})
+			}
+		},
+	)
+
+	for i := 0; i < 10; i++ {
+		key := fmt.Sprint(i)
+		v := pageReverseIndex.Get(key)
+		c.Assert(v, qt.Not(qt.IsNil))
+		c.Assert(v.Path(), qt.Equals, key)
+	}
+}
+
+// Issue 13019.
+func TestContentTreeReverseIndexPara(t *testing.T) {
+	t.Parallel()
+
+	var wg sync.WaitGroup
+
+	for i := 0; i < 10; i++ {
+		pageReverseIndex := newContentTreeTreverseIndex(
+			func(get func(key any) (contentNodeI, bool), set func(key any, val contentNodeI)) {
+				for i := 0; i < 10; i++ {
+					key := fmt.Sprint(i)
+					set(key, &testContentNode{key: key})
+				}
+			},
+		)
+
+		for j := 0; j < 10; j++ {
+			wg.Add(1)
+			go func(i int) {
+				defer wg.Done()
+				pageReverseIndex.Get(fmt.Sprint(i))
+			}(j)
+		}
+	}
+}
+
+type testContentNode struct {
+	key string
+}
+
+func (n *testContentNode) GetIdentity() identity.Identity {
+	return identity.StringIdentity(n.key)
+}
+
+func (n *testContentNode) ForEeachIdentity(cb func(id identity.Identity) bool) bool {
+	panic("not supported")
+}
+
+func (n *testContentNode) Path() string {
+	return n.key
+}
+
+func (n *testContentNode) isContentNodeBranch() bool {
+	return false
+}
+
+func (n *testContentNode) resetBuildState() {
+}
+
+func (n *testContentNode) MarkStale() {
+}