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

Closed
opened 2025-11-02 07:14:26 -06:00 by GiteaMirror · 2 comments
Owner

Originally created by @rlogiacco on GitHub (Mar 22, 2021).

  • 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

Originally created by @rlogiacco on GitHub (Mar 22, 2021). <!-- NOTE: If your issue is a security concern, please send an email to security@gitea.io instead of opening a public issue --> <!-- 1. Please speak English, this is the language all maintainers can speak and write. 2. Please ask questions or configuration/deploy problems on our Discord server (https://discord.gg/gitea) or forum (https://discourse.gitea.io). 3. Please take a moment to check that your issue doesn't already exist. 4. Make sure it's not mentioned in the FAQ (https://docs.gitea.io/en-us/faq) 5. Please give all relevant information below for bug reports, because incomplete details will be handled as an invalid report. --> - Gitea version (or commit ref): `1.13.5` - Git version: NA - Operating system: **official docker image** - Database (use `[x]`): - [ ] PostgreSQL - [x] MySQL - [ ] MSSQL - [ ] SQLite - Can you reproduce the bug at https://try.gitea.io: - [ ] Yes (provide example URL) - [x] 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 <!-- **If this issue involves the Web Interface, please include a screenshot** -->
GiteaMirror added the type/bugmodifies/api labels 2025-11-02 07:14:26 -06:00
Author
Owner

@rlogiacco commented on GitHub (Mar 23, 2021):

thank you for the fast fix!

@rlogiacco commented on GitHub (Mar 23, 2021): thank you for the fast fix!
Author
Owner

@rlogiacco commented on GitHub (Mar 24, 2021):

I confirm the last release 1.13.6 is not more affected by this issue. Thank you again!

@rlogiacco commented on GitHub (Mar 24, 2021): I confirm the last release `1.13.6` is not more affected by this issue. Thank you again!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/gitea#7050