uptrace / bun

SQL-first Golang ORM
https://bun.uptrace.dev
BSD 2-Clause "Simplified" License
3.47k stars 210 forks source link

data race in initRelation func #919

Closed max107 closed 5 months ago

max107 commented 8 months ago

Steps to reproduce

  1. Create 2 models with has-many relation
  2. Run tests in parallel
WARNING: DATA RACE
Read at 0x00c000698d40 by goroutine 9:
  github.com/uptrace/bun/schema.(*Field).Clone()
      vendor/github.com/uptrace/bun/schema/field.go:48 +0x1b4
  github.com/uptrace/bun/schema.(*Table).inlineFields()
      vendor/github.com/uptrace/bun/schema/table.go:821 +0x190
  github.com/uptrace/bun/schema.(*Table).inlineFields()
      vendor/github.com/uptrace/bun/schema/table.go:838 +0x708
  github.com/uptrace/bun/schema.(*Table).initRelations()
      vendor/github.com/uptrace/bun/schema/table.go:424 +0x380
  github.com/uptrace/bun/schema.(*Table).init2()
      vendor/github.com/uptrace/bun/schema/table.go:130 +0x44
  github.com/uptrace/bun/schema.(*tableInProgress).init2.func1()
      vendor/github.com/uptrace/bun/schema/tables.go:34 +0x30

Versions

github.com/uptrace/bun v1.1.16
github.com/uptrace/bun/dbfixture v1.1.16
github.com/uptrace/bun/dialect/pgdialect v1.1.16
vmihailenco commented 5 months ago

This is probably fixed in the current master branch (unreleased).