IronPdf.LinuxARM : Impossible d'allouer de la mémoire dans un bloc TLS statique

This article was translated from English: Does it need improvement?
Translated
View the article in English

Lors de l'utilisation de la version LinuxARM d' IronPDF, un message d'exception apparaît lors de la tentative de chargement dynamique de libcef.so sur Linux ARM. Et le message d'exception suivant apparaîtrait.

IronSoftware.Exceptions.IronSoftwareDeploymentException: Error while deploying IronPdf Chrome renderer: '/irontest/testIronPdfOnLinuxArm/bin/Debug/net8.0/runtimes/linux-arm64/native/libcef.so: cannot allocate memory in static TLS block'. To learn more about making an engineering support request please visit: . To learn how to solve this issue please read https://ironpdf.com/troubleshooting/error-while-deploying-chrome-dependencies/ [Issue Code IRONPDF-CHROME-DEPLOYMENT-ERROR-LINUX]

Problème

Lors du chargement dynamique de libcef.so sur Linux ARM, vous pouvez rencontrer une erreur indiquant : " impossible d'allouer de la mémoire dans un bloc TLS statique ". Cette erreur est un problème connu associé au Chromium Embedded Framework (CEF). Cela se produit parce que les versions plus récentes de CEF nécessitent plus d'espace de stockage local de thread (TLS) que ce que le chargeur dynamique Linux alloue par défaut. Ce problème est bien documenté et affecte à la fois les processeurs Linux ARM et les systèmes Linux ARM x64, qui ne disposent pas suffisamment de stockage local de thread (TLS) pour la nouvelle version de CEF. Vous pouvez trouver plus d'informations et la discussion sur ce problème ici.

Solution

La solution à cette exception est de la définir manuellement avant d'exécuter votre application, comme indiqué ci-dessous.

export LD_PRELOAD=/path/to/libcef.so
export LD_PRELOAD=/path/to/libcef.so
SHELL

En définissant manuellement LD_PRELOAD avant le processus C#, nous forçons l'éditeur de liens à charger libcef.so en premier, avant les autres bibliothèques, garantissant une allocation de mémoire TLS suffisante. Cette approche s'est avérée très efficace, résolvant le problème et empêchant qu'il ne tombe en panne avec des erreurs TLS allocation. Vous pouvez être sûr que cette solution fonctionne.

La méthode LD_PRELOAD est l'approche la plus efficace et la plus simple recommandée par d'autres utilisateurs, y compris les Forums CEF.

C'est actuellement une solution de contournement jusqu'à ce que CEF résolve finalement le problème pour ARM, comme ils l'ont fait pour les versions x64 en réduisant l'utilisation de TLS dans libxml2. Cependant, il n'y a pas de calendrier défini pour quand CEF traitera cela.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Prêt à commencer?
Nuget Téléchargements 18,120,209 | Version : 2026.4 vient de sortir
Still Scrolling Icon

Vous faites encore défiler ?

Vous voulez une preuve rapidement ? PM > Install-Package IronPdf
exécuter un échantillon Regardez votre code HTML se transformer en PDF.