Fusion Auth 升级到 v 1.9.1 后出现内部服务器错误
Internal Server Error after Fusion Auth Upgrade to v 1.9.1
我曾尝试将生产环境融合身份验证实例从版本 1.6.x 升级到 1.9.1,不幸的是,在数据库迁移后,我们在浏览到应用程序时出现错误 500 页面。
我查看了显示以下错误的日志:
Sep 24, 2019 4:16:03.726 PM ERROR
com.inversoft.scheduler.LogAndRetainFailureHandler - The scheduled
service [class io.fusionauth.api.service.cache.ThemeCacheLoader]
failed but will be re-run.
java.lang.IllegalStateException: Invalid
message value for theme at
io.fusionauth.api.domain.CachedTheme.loadProperties(CachedTheme.java:40)
at io.fusionauth.api.domain.CachedTheme.(CachedTheme.java:24)
at java.util.stream.Collectors.lambda$toMap(Collectors.java:1321)
at
java.util.stream.ReduceOpsReducingSink.accept(ReduceOps.java:169)
at
java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
at
java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
at
java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at
java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
at
java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at
java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
at
io.fusionauth.api.service.cache.ThemeCacheLoader.load(ThemeCacheLoader.java:34)
at
io.fusionauth.api.service.cache.ThemeCacheLoader.run(ThemeCacheLoader.java:40)
at
com.inversoft.scheduler.InjectableRunnable.run(InjectableRunnable.java:37)
at
com.inversoft.scheduler.DefaultScheduler.(DefaultScheduler.java:74)
(我故意截断了日志输出,如果需要我可以用完整日志编辑问题)
我还查看了包含两个条目的主题 table。第一个在数据列中有一个非常大的 JSON 对象字符串文字,第二个只有任何空的 JSON 对象,即“{}”。
我正在伸出援手,希望这是一个简单的数据问题?有人有什么想法吗?提前致谢
这是一个已知问题,当您在升级前定义了自定义主题时可能会出现该问题。
很快将在 1.9.2 版中提供修复,上面链接的 GitHub 问题中描述了解决方法,下面也提供了解决方法。 https://github.com/FusionAuth/fusionauth-issues/issues/306
解决方法:
- 对于默认 FusionAuth 主题以外的每个主题
- 使用检索主题API
- 为
defaultMessages
设置一个值,例如空字符串
- 使用更新主题更新主题API
我曾尝试将生产环境融合身份验证实例从版本 1.6.x 升级到 1.9.1,不幸的是,在数据库迁移后,我们在浏览到应用程序时出现错误 500 页面。
我查看了显示以下错误的日志:
Sep 24, 2019 4:16:03.726 PM ERROR com.inversoft.scheduler.LogAndRetainFailureHandler - The scheduled service [class io.fusionauth.api.service.cache.ThemeCacheLoader] failed but will be re-run.
java.lang.IllegalStateException: Invalid message value for theme at io.fusionauth.api.domain.CachedTheme.loadProperties(CachedTheme.java:40) at io.fusionauth.api.domain.CachedTheme.(CachedTheme.java:24) at java.util.stream.Collectors.lambda$toMap(Collectors.java:1321) at java.util.stream.ReduceOpsReducingSink.accept(ReduceOps.java:169) at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) at io.fusionauth.api.service.cache.ThemeCacheLoader.load(ThemeCacheLoader.java:34) at io.fusionauth.api.service.cache.ThemeCacheLoader.run(ThemeCacheLoader.java:40) at com.inversoft.scheduler.InjectableRunnable.run(InjectableRunnable.java:37) at com.inversoft.scheduler.DefaultScheduler.(DefaultScheduler.java:74)
(我故意截断了日志输出,如果需要我可以用完整日志编辑问题)
我还查看了包含两个条目的主题 table。第一个在数据列中有一个非常大的 JSON 对象字符串文字,第二个只有任何空的 JSON 对象,即“{}”。
我正在伸出援手,希望这是一个简单的数据问题?有人有什么想法吗?提前致谢
这是一个已知问题,当您在升级前定义了自定义主题时可能会出现该问题。
很快将在 1.9.2 版中提供修复,上面链接的 GitHub 问题中描述了解决方法,下面也提供了解决方法。 https://github.com/FusionAuth/fusionauth-issues/issues/306
解决方法:
- 对于默认 FusionAuth 主题以外的每个主题
- 使用检索主题API
- 为
defaultMessages
设置一个值,例如空字符串 - 使用更新主题更新主题API