Elytrium / LimboFilter

Powerful bot filtering solution for Minecraft proxies. Built with LimboAPI.
https://elytrium.net/
GNU Affero General Public License v3.0
150 stars 42 forks source link

Ошибка на Ubuntu 20.04.3 #3

Closed maximen39 closed 2 years ago

maximen39 commented 2 years ago

На Ubuntu 20.04.3 (Linux 5.4.0-94-generic x86_64) если нет пакета шрифтов, то возникает ошибка. Решается установкой пакета ttf-dejavu: sudo apt-get install ttf-dejavu Предлагаю добавить в документацию, т.к для некоторых пользователей это может быть не очевидно

[10:29:15 ERROR]: Exception in thread "pool-8-thread-1" java.lang.Error: Probable fatal error: No physical fonts found.
[10:29:15 ERROR]:       at java.desktop/sun.font.SunFontManager.lambda$getDefaultPhysicalFont$0(SunFontManager.java:1056)
[10:29:15 ERROR]:       at java.base/java.util.Optional.orElseThrow(Optional.java:403)
[10:29:15 ERROR]:       at java.desktop/sun.font.SunFontManager.getDefaultPhysicalFont(SunFontManager.java:1056)
[10:29:15 ERROR]:       at java.desktop/sun.font.CompositeFont.doDeferredInitialisation(CompositeFont.java:291)
[10:29:15 ERROR]:       at java.desktop/sun.font.CompositeFont.getSlotFont(CompositeFont.java:376)
[10:29:15 ERROR]:       at java.desktop/sun.font.CompositeGlyphMapper.initMapper(CompositeGlyphMapper.java:81)
[10:29:15 ERROR]:       at java.desktop/sun.font.CompositeGlyphMapper.<init>(CompositeGlyphMapper.java:62)
[10:29:15 ERROR]:       at java.desktop/sun.font.CompositeFont.getMapper(CompositeFont.java:433)
[10:29:15 ERROR]:       at java.desktop/sun.font.StandardGlyphVector.init(StandardGlyphVector.java:1105)
[10:29:15 ERROR]:       at java.desktop/sun.font.StandardGlyphVector.<init>(StandardGlyphVector.java:163)
[10:29:15 ERROR]:       at java.desktop/java.awt.Font.createGlyphVector(Font.java:2747)
[10:29:15 ERROR]:       at net.elytrium.limbofilter.captcha.painter.CaptchaPainter.draw(CaptchaPainter.java:68)
[10:29:15 ERROR]:       at net.elytrium.limbofilter.captcha.painter.CaptchaPainter.draw(CaptchaPainter.java:57)
[10:29:15 ERROR]:       at net.elytrium.limbofilter.captcha.CaptchaGenerator.genNewPacket(CaptchaGenerator.java:134)
[10:29:15 ERROR]:       at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[10:29:15 ERROR]:       at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[10:29:15 ERROR]:       at java.base/java.lang.Thread.run(Thread.java:833)
[10:29:15 ERROR]: Exception in thread "pool-8-thread-2" java.lang.Error: Probable fatal error: No physical fonts found.
[10:29:15 ERROR]:       at java.desktop/sun.font.SunFontManager.lambda$getDefaultPhysicalFont$0(SunFontManager.java:1056)
[10:29:15 ERROR]:       at java.base/java.util.Optional.orElseThrow(Optional.java:403)
[10:29:15 ERROR]:       at java.desktop/sun.font.SunFontManager.getDefaultPhysicalFont(SunFontManager.java:1056)
[10:29:15 ERROR]:       at java.desktop/sun.font.CompositeFont.doDeferredInitialisation(CompositeFont.java:291)
[10:29:15 ERROR]:       at java.desktop/sun.font.CompositeFont.getSlotFont(CompositeFont.java:376)
[10:29:15 ERROR]:       at java.desktop/sun.font.CompositeGlyphMapper.initMapper(CompositeGlyphMapper.java:81)
[10:29:15 ERROR]:       at java.desktop/sun.font.CompositeGlyphMapper.<init>(CompositeGlyphMapper.java:62)
[10:29:15 ERROR]:       at java.desktop/sun.font.CompositeFont.getMapper(CompositeFont.java:433)
[10:29:15 ERROR]:       at java.desktop/sun.font.StandardGlyphVector.init(StandardGlyphVector.java:1105)
[10:29:15 ERROR]:       at java.desktop/sun.font.StandardGlyphVector.<init>(StandardGlyphVector.java:163)
[10:29:15 ERROR]:       at java.desktop/java.awt.Font.createGlyphVector(Font.java:2747)
[10:29:15 ERROR]:       at net.elytrium.limbofilter.captcha.painter.CaptchaPainter.draw(CaptchaPainter.java:68)
[10:29:15 ERROR]:       at net.elytrium.limbofilter.captcha.painter.CaptchaPainter.draw(CaptchaPainter.java:57)
[10:29:15 ERROR]:       at net.elytrium.limbofilter.captcha.CaptchaGenerator.genNewPacket(CaptchaGenerator.java:134)
[10:29:15 ERROR]:       at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[10:29:15 ERROR]:       at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[10:29:15 ERROR]:       at java.base/java.lang.Thread.run(Thread.java:833)
hevav commented 2 years ago

Все же, это не ошибка плагина, а ошибка вашей системы. И все же, обычно ошибка появляется только на самых дешевых хостингах. А фиксится это установкой совсем другого пакета - fontconfig. Да, он есть в зависимостях у ttf-dejavu, но устанавливать лишнего точно не нужно. Но хорошо, я укажу это в будущем.

maximen39 commented 2 years ago

Не думаю что aws это дешевый хостинг) Это происходит, т.к крупным хостингам таким как gcp, aws важна скорость развертывания и из-за этого они используют pre-installed образы в которых нет таких "лишних" пакетов

hevav commented 2 years ago

Допустим что это единичный случай. Тем более насколько я помню, в AWS есть различные виды образов, и с минимальной установкой, и с обычной. В G-Core Cloud, Yandex.Cloud, VK CS, OVHcloud, Scaleway нужный пакет fontconfig предустановлен.