500/404 error when clicking "read" notifications #5111

Closed
opened 2025-11-02 06:14:49 -06:00 by GiteaMirror · 8 comments
Owner

Originally created by @echodreamz on GitHub (Mar 24, 2020).

  • Gitea version (or commit ref): 1.11.3
  • Git version: 2.24.0
  • Operating system:
  • Database (use [x]):
    • PostgreSQL
    • MySQL
    • MSSQL
    • SQLite
  • Can you reproduce the bug at https://try.gitea.io:
    • Yes (provide example URL)
    • No
    • Not relevant
  • Log gist:

2020/03/24 23:23:24 ...les/context/panic.go:35:1() [E] PANIC:: runtime error: invalid memory address or nil pointer dereference /usr/local/go/src/runtime/panic.go:199 (0x44c4db) /usr/local/go/src/runtime/signal_unix.go:394 (0x44c318) /go/src/code.gitea.io/gitea/models/notification.go:391 (0xefb223) /go/src/code.gitea.io/gitea/routers/user/notification.go:81 (0x129feda) /usr/local/go/src/reflect/value.go:460 (0x497625) /usr/local/go/src/reflect/value.go:321 (0x496de3) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:177 (0x9b30d9) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:137 (0x9b2a89) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:121 (0x9e3c58) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:112 (0xff8531) /go/src/code.gitea.io/gitea/modules/context/panic.go:39 (0xff851d) /usr/local/go/src/reflect/value.go:460 (0x497625) /usr/local/go/src/reflect/value.go:321 (0x496de3) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:177 (0x9b30d9) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:137 (0x9b2a89) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:121 (0x9e3c58) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:112 (0xab2255) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/session/session.go:192 (0xab2240) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:79 (0x9e3b00) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:157 (0x9b2de9) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:135 (0x9b2b78) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:121 (0x9e3c58) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:112 (0x17feb26) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/gzip/gzip.go:139 (0x17feb19) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:79 (0x9e3b00) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:157 (0x9b2de9) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:135 (0x9b2b78) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:121 (0x9e3c58) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:112 (0x9f5239) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/recovery.go:161 (0x9f5227) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/logger.go:40 (0x9e77d3) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:157 (0x9b2de9) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:135 (0x9b2b78) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:121 (0x9e3c58) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:112 (0x9f4570) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/logger.go:52 (0x9f455b) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/logger.go:40 (0x9e77d3) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:157 (0x9b2de9) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:135 (0x9b2b78) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:121 (0x9e3c58) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/router.go:187 (0x9f6456) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/router.go:294 (0x9efedd) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/macaron.go:218 (0x9e8b6a) /go/src/code.gitea.io/gitea/vendor/github.com/gorilla/context/context.go:141 (0xd3701d) /usr/local/go/src/net/http/server.go:2007 (0x753553) /usr/local/go/src/net/http/server.go:2802 (0x7569a3) /usr/local/go/src/net/http/server.go:1890 (0x752344) /usr/local/go/src/runtime/asm_amd64.s:1357 (0x466c70)

Description

This appears to only occur when the user has unread notifications and they select the "read" tab. They either get a 404 or 500 error page.

Originally created by @echodreamz on GitHub (Mar 24, 2020). - Gitea version (or commit ref): 1.11.3 - Git version: 2.24.0 - Operating system: - Database (use `[x]`): - [ ] PostgreSQL - [X] MySQL - [ ] MSSQL - [ ] SQLite - Can you reproduce the bug at https://try.gitea.io: - [ ] Yes (provide example URL) - [X] No - [ ] Not relevant - Log gist: `2020/03/24 23:23:24 ...les/context/panic.go:35:1() [E] PANIC:: runtime error: invalid memory address or nil pointer dereference /usr/local/go/src/runtime/panic.go:199 (0x44c4db) /usr/local/go/src/runtime/signal_unix.go:394 (0x44c318) /go/src/code.gitea.io/gitea/models/notification.go:391 (0xefb223) /go/src/code.gitea.io/gitea/routers/user/notification.go:81 (0x129feda) /usr/local/go/src/reflect/value.go:460 (0x497625) /usr/local/go/src/reflect/value.go:321 (0x496de3) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:177 (0x9b30d9) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:137 (0x9b2a89) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:121 (0x9e3c58) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:112 (0xff8531) /go/src/code.gitea.io/gitea/modules/context/panic.go:39 (0xff851d) /usr/local/go/src/reflect/value.go:460 (0x497625) /usr/local/go/src/reflect/value.go:321 (0x496de3) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:177 (0x9b30d9) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:137 (0x9b2a89) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:121 (0x9e3c58) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:112 (0xab2255) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/session/session.go:192 (0xab2240) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:79 (0x9e3b00) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:157 (0x9b2de9) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:135 (0x9b2b78) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:121 (0x9e3c58) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:112 (0x17feb26) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/gzip/gzip.go:139 (0x17feb19) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:79 (0x9e3b00) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:157 (0x9b2de9) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:135 (0x9b2b78) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:121 (0x9e3c58) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:112 (0x9f5239) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/recovery.go:161 (0x9f5227) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/logger.go:40 (0x9e77d3) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:157 (0x9b2de9) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:135 (0x9b2b78) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:121 (0x9e3c58) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:112 (0x9f4570) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/logger.go:52 (0x9f455b) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/logger.go:40 (0x9e77d3) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:157 (0x9b2de9) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/inject/inject.go:135 (0x9b2b78) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/context.go:121 (0x9e3c58) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/router.go:187 (0x9f6456) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/router.go:294 (0x9efedd) /go/src/code.gitea.io/gitea/vendor/gitea.com/macaron/macaron/macaron.go:218 (0x9e8b6a) /go/src/code.gitea.io/gitea/vendor/github.com/gorilla/context/context.go:141 (0xd3701d) /usr/local/go/src/net/http/server.go:2007 (0x753553) /usr/local/go/src/net/http/server.go:2802 (0x7569a3) /usr/local/go/src/net/http/server.go:1890 (0x752344) /usr/local/go/src/runtime/asm_amd64.s:1357 (0x466c70) ` ## Description This appears to only occur when the user has unread notifications and they select the "read" tab. They either get a 404 or 500 error page.
GiteaMirror added the type/bug label 2025-11-02 06:14:49 -06:00
Author
Owner

@bagasme commented on GitHub (Mar 26, 2020):

@echodreamz 404 or 500 error returned by random?

@bagasme commented on GitHub (Mar 26, 2020): @echodreamz 404 or 500 error returned by random?
Author
Owner

@echodreamz commented on GitHub (Mar 29, 2020):

@bagasme when clicking the "read" tab, sometimes it's a 404 page, sometimes it is a 500 error page shown. Seems to be random which element is returned. It also only appears to do this for some users, but not others.

@echodreamz commented on GitHub (Mar 29, 2020): @bagasme when clicking the "read" tab, sometimes it's a 404 page, sometimes it is a 500 error page shown. Seems to be random which element is returned. It also only appears to do this for some users, but not others.
Author
Owner

@zeripath commented on GitHub (Mar 29, 2020):

The problem is line 392 here:

3dabfd4933/models/notification.go (L389-L395)

If notification.Issue remains nil then you will get a panic.

@zeripath commented on GitHub (Mar 29, 2020): The problem is line 392 here: https://github.com/go-gitea/gitea/blob/3dabfd493372e693b6905d08ec2fb22abaed8ae7/models/notification.go#L389-L395 If `notification.Issue` remains nil then you will get a panic.
Author
Owner

@zeripath commented on GitHub (Mar 29, 2020):

Now why is it that NotificationList.LoadIssues() couldn't load an issue?

I bet there are notifications being made before the session commits.

@zeripath commented on GitHub (Mar 29, 2020): Now why is it that NotificationList.LoadIssues() couldn't load an issue? I bet there are notifications being made before the session commits.
Author
Owner

@6543 commented on GitHub (Jul 23, 2020):

current status?

@6543 commented on GitHub (Jul 23, 2020): current status?
Author
Owner

@zeripath commented on GitHub (Sep 29, 2020):

The 500 can no longer occur - the associated pr prevents it but I wasn't able to work out why the problem could occur in the first place.

We would need the original reporter to happen upon another case - hopefully in a repeatable manner so we can work out what caused the problem.

@zeripath commented on GitHub (Sep 29, 2020): The 500 can no longer occur - the associated pr prevents it but I wasn't able to work out why the problem could occur in the first place. We would need the original reporter to happen upon another case - hopefully in a repeatable manner so we can work out what caused the problem.
Author
Owner

@zeripath commented on GitHub (Sep 29, 2020):

This bug should not hold up any milestone though. The 500 has been presented so I'll gonna move it to 1.14

@zeripath commented on GitHub (Sep 29, 2020): This bug should not hold up any milestone though. The 500 has been presented so I'll gonna move it to 1.14
Author
Owner

@lunny commented on GitHub (Feb 5, 2021):

I'll close this since it cannot reproduce any more. Please feel free to reopen it.

@lunny commented on GitHub (Feb 5, 2021): I'll close this since it cannot reproduce any more. Please feel free to reopen it.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/gitea#5111