ArgumentError: Ungültige Zeitzone: US/Pacific-New verursacht 500 Fehler

Ich habe eine Standardinstallation, die ich gerade aktualisiert habe und die aufgrund eines Zeitzonenproblems fehlschlägt. Ich glaube, es könnte nur ein Benutzer sein, aber ich bin mir noch nicht ganz sicher.

Es war nur für einen Benutzer. Als ich zu seinem Profil ging, war seine Zeitzone nicht eingestellt. Als ich die Zeitzone einstellte, verschwand das Problem.

Started GET "/t/37040.json?track_visit=true&forceLoad=true" for 204.98.75.5 at 2023-03-23 21:36:37 +0000
Processing by TopicsController#show as JSON
  Parameters: {"track_visit"=>"true", "forceLoad"=>"true", "id"=>"37040"}
Completed 500 Internal Server Error in 48ms (ActiveRecord: 0.0ms | Allocations: 8345)
ArgumentError (Invalid Timezone: US/Pacific-New)
(eval):82:in `_fast_attributes'
app/serializers/post_stream_serializer_mixin.rb:54:in `block in posts'
app/serializers/post_stream_serializer_mixin.rb:47:in `map'
app/serializers/post_stream_serializer_mixin.rb:47:in `posts'
app/serializers/post_stream_serializer_mixin.rb:18:in `post_stream'
(eval):3:in `_fast_attributes'
app/controllers/application_controller.rb:545:in `render_json_dump'
app/controllers/topics_controller.rb:1242:in `block (2 levels) in perform_show_response'
app/controllers/topics_controller.rb:1232:in `perform_show_response'
app/controllers/topics_controller.rb:187:in `show'
app/controllers/application_controller.rb:414:in `block in with_resolved_locale'
app/controllers/application_controller.rb:414:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:74:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:369:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:228:in `call'
Failed to handle exception in exception app middleware : ArgumentError : Invalid Timezone: US/Pacific-New
  Rendered text template (Duration: 0.0ms | Allocations: 1)
Started GET "/latest.json" for 172.220.127.141 at 2023-03-23 21:37:00 +0000
Processing by ListController#latest as JSON

EDIT: Vielleicht hatte er seine Zeitzone auf diesen ungültigen Wert eingestellt? Ich habe einen anderen Benutzer mit einer nil-Zeitzone ausprobiert und es gab keinen Fehler.

3 „Gefällt mir“

Von welcher Version haben Sie ein Upgrade durchgeführt?

Vielleicht im Zusammenhang damit (und alt) FIX: removes us_pacific-new from the list of available timezones by jjaffeux · Pull Request #10514 · discourse/discourse · GitHub

5 „Gefällt mir“

Gut bemerkt. Ich muss lernen, wie ich alte Commits besser nach Strings durchsuchen kann. Machen Sie das über die GitHub-Benutzeroberfläche? Wo?

Es stammte aus einer neueren Version, nicht älter als einen Monat. Es ergibt keinen Sinn, dass dies jetzt ein Problem wäre, es sei denn, eine neuere Bibliothek erzwingt etwas anders.

Es könnte also ein Zufall sein oder dieser Commit hätte Benutzereinstellungen mit dieser jetzt ungültigen Zeitzone entfernen sollen.

1 „Gefällt mir“
  1. Gehen Sie zum Repository, das Sie durchsuchen möchten
  2. Geben Sie den Suchbegriff oben links ein

  1. Klicken Sie auf und dann auf „in diesem Repository“

2 „Gefällt mir“

Ich bin mir nicht sicher, wie ich das in 6 Jahren herausgefunden habe!

3 „Gefällt mir“

Nun, es scheint, dass ich es immer noch nicht herausgefunden habe.

Aber warte! Hier ist das Geheimnis, das ich all die Jahre verpasst habe:

und wenn ich auf „Issues“ klicke. . . . endlich!

Vielen Dank.

1 „Gefällt mir“

Nun, meine beste Vermutung ist, dass es ein Zeitfenster gab, in dem man US/Pacific-New als Zeitzone wählen konnte, und dieser Benutzer hat es getan. Und jetzt schlägt eine Bibliothek für Benutzer mit dieser Zeitzone fehl.

UserOption.where("timezone like '%Pacific-New%'")

findet keine anderen Benutzer mit dieser Zeitzone, daher vermute ich, dass dies auf dieser Website nicht wieder vorkommen wird.

1 „Gefällt mir“