Skip to content

API /pulls/{pr}/reviews produces runtime error when reviewers list contains a group  #15104

@rlogiacco

Description

@rlogiacco
  • Gitea version (or commit ref): 1.13.5
  • Git version: NA
  • Operating system: official docker image
  • Database (use [x]):
    • PostgreSQL
    • MySQL
    • MSSQL
    • SQLite
  • Can you reproduce the bug at https://try.gitea.io:
    • Yes (provide example URL)
    • No
  • Log gist:
[Macaron] 2021-03-22 15:27:47: Started GET /api/v1/repos/xxx/yyy/pulls/nnn/reviews for 1.1.7.51
2021/03/22 15:27:47 ...les/context/panic.go:35:1() [E] PANIC:: runtime error: invalid memory address or nil pointer dereference
	/usr/local/go/src/runtime/panic.go:212 (0x455b52)
	/usr/local/go/src/runtime/signal_unix.go:742 (0x4559d2)
	/go/src/code.gitea.io/gitea/modules/convert/user.go:19 (0x1cbf657)
	/go/src/code.gitea.io/gitea/modules/convert/pull_review.go:30 (0x1cbe668)
	/go/src/code.gitea.io/gitea/modules/convert/pull_review.go:66 (0x1cbeb15)
	/go/src/code.gitea.io/gitea/routers/api/v1/repo/pull_review.go:90 (0x20e5eea)
	/usr/local/go/src/reflect/value.go:476 (0x4a6586)
	/usr/local/go/src/reflect/value.go:337 (0x4a5a78)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:177 (0xd90a79)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:137 (0xd9044a)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:121 (0xd91f9c)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:112 (0x1678908)
	/go/src/code.gitea.io/gitea/modules/context/api.go:230 (0x16788f6)
	/usr/local/go/src/reflect/value.go:476 (0x4a6586)
	/usr/local/go/src/reflect/value.go:337 (0x4a5a78)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:177 (0xd90a79)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:137 (0xd9044a)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:121 (0xd91f9c)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:112 (0x167cf94)
	/go/src/code.gitea.io/gitea/modules/context/panic.go:39 (0x167cf85)
	/usr/local/go/src/reflect/value.go:476 (0x4a6586)
	/usr/local/go/src/reflect/value.go:337 (0x4a5a78)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:177 (0xd90a79)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:137 (0xd9044a)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:121 (0xd91f9c)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:112 (0x1630164)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/session/session.go:192 (0x163014d)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:79 (0xd91e12)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:157 (0xd90794)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:135 (0xd90539)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:121 (0xd91f9c)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:112 (0xda3b25)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/recovery.go:161 (0xda3b18)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/logger.go:40 (0xd95b57)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:157 (0xd90794)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:135 (0xd90539)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:121 (0xd91f9c)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:112 (0xda2e29)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/logger.go:52 (0xda2e14)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/logger.go:40 (0xd95b57)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:157 (0xd90794)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:135 (0xd90539)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:121 (0xd91f9c)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/router.go:187 (0xda4d70)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/router.go:303 (0xd9e505)
	/go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/macaron.go:218 (0xd96ecd)
	/go/src/code.gitea.io/gitea/vendor/github.com/gorilla/context/context.go:141 (0x12a13f3)
	/usr/local/go/src/net/http/server.go:2042 (0x77e343)
	/usr/local/go/src/net/http/server.go:2843 (0x781942)
	/usr/local/go/src/net/http/server.go:1925 (0x77d14c)
	/usr/local/go/src/runtime/asm_amd64.s:1374 (0x477f60)

Description

First you have to define a team, this is the reason I couldn't replicate it over https://try.gitea.io.

To reproduce the issue, just create a PR and add the team as reviewers.
From now on the API to retrieve the reviews on the PR (/api/v1/repos/<org>/<repo>/pulls/<prn>/reviews) will fail, returning a 500 status code with the above stack trace being logged on the console.

Removing the group from the reviewers DOES NOT solve the issue and you keep getting the same error.

Screenshots

Metadata

Metadata

Assignees

No one assigned

    Labels

    modifies/apiThis PR adds API routes or modifies themtype/bug

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions