ArgumentError : Fuseau horaire invalide : US/Pacific-New provoque une erreur 500

J’ai une installation standard que je viens de mettre à niveau et qui échoue en raison d’un problème de fuseau horaire. Je pense que cela ne concerne qu’un seul utilisateur, mais je ne suis pas encore tout à fait sûr.

C’était pour un seul utilisateur. Quand je suis allé sur son profil, son fuseau horaire n’était pas défini. Lorsque j’ai défini le fuseau horaire, le problème a disparu.

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 : peut-être qu’il avait son fuseau horaire réglé sur cette valeur bidon ? J’ai essayé avec un autre utilisateur dont le fuseau horaire était nul et il n’y a pas eu d’erreur.

3 « J'aime »

Depuis quelle version avez-vous mis à niveau ?

Peut-être lié (et ancien) FIX: removes us_pacific-new from the list of available timezones by jjaffeux · Pull Request #10514 · discourse/discourse · GitHub

5 « J'aime »

Impressionnant. Bonne trouvaille. Je dois apprendre à mieux rechercher d’anciennes validations pour des chaînes de caractères. Le faites-vous via l’interface utilisateur de GitHub ? Où ?

C’était dans une version récente, il y a moins d’un mois. Il n’est pas logique que ce soit un problème maintenant, à moins qu’une bibliothèque plus récente n’impose quelque chose différemment.

Donc, c’est peut-être un coup de chance ou alors cette validation aurait dû supprimer les paramètres utilisateur avec ce fuseau horaire maintenant invalide.

1 « J'aime »
  1. Allez dans le dépôt que vous souhaitez rechercher
  2. Entrez le terme de recherche en haut à gauche

  1. Cliquez, puis cliquez sur « dans ce dépôt »

2 « J'aime »

Ça fait 6 ans que je n’avais pas compris ça !

3 « J'aime »

Eh bien, il semble que je n’aie toujours pas trouvé.\n\n

\n\nMais attendez ! Voici le secret qui m’a échappé toutes ces années :\n\n\n\net si je clique sur « issues »… enfin !\n\n\n\nMerci beaucoup.

1 « J'aime »

Eh bien, ma meilleure supposition est qu’il y a eu une période pendant laquelle on pouvait choisir US/Pacific-New comme fuseau horaire, et cet utilisateur l’a fait. Et maintenant, une bibliothèque échoue pour les utilisateurs avec ce fuseau horaire.

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

ne trouve aucun autre utilisateur avec ce fuseau horaire, donc je suppose que cela ne se reproduira plus sur ce site.

1 « J'aime »