Windows addon loaders are unreachable and swallow load errors
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 54/100
- Type d'issue
- Bug
- Clarté
- Clairement spécifiée
- Activité
- Calme
- Stack technique
- cpp
- Domaine
- operating-systems
Piste de recherche
Commencez dans packages/host/cpp/CxxNodeApiHostModule.hpp et AddonLoaders.hpp, puis examinez l’appelant du loader dans CxxNodeApiHostModule.cpp ainsi que les APIs de logging dans Logger.hpp. Confirmez l’alias du loader spécifique à la plateforme et suivez les quatre chemins d’échec de Windows. C’est terminé lorsque Windows sélectionne le loader approprié et signale les erreurs de chargement ou de symbole capturées au lieu de les ignorer.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Grouping the FIXME/HACK in CxxNodeApiHostModule.hpp with the four TODOs in AddonLoaders.hpp. Both halves of the Windows story are incomplete, and the first makes the second unobservable.
The loader policy is hardcoded to POSIX
Win32Loader and WinRTLoader exist in AddonLoaders.hpp and are compiled behind #if defined(_WIN32), but nothing ever selects them — LoaderPolicy is unconditionally PosixLoader. The alias should be chosen by platform (_WIN32 → Win32Loader, with WinRT distinguished by the appropriate API-family macro, POSIX otherwise), which is a compile-time #if rather than a design question.
The Windows loaders discard the reason for every failure
All four failure paths detect the error and then do nothing with it:
LoadLibrary/LoadPackagedLibrary/GetProcAddress all return null and leave the reason in GetLastError(). Returning null without capturing it means the caller in CxxNodeApiHostModule.cpp can only report "Failed to load library" — the distinction between "file not found", "a transitive dependency is missing" and "wrong architecture" is lost, and those are precisely the three things a developer needs to tell apart. PosixLoader has the same shape of gap but at least has dlerror() available; the commented-out NSLog there suggests it was once wired up.
Suggested minimum: format the DWORD via FormatMessageA and route it through log_error/log_debug from Logger.hpp, matching how the POSIX path should report dlerror().
Both were listed in the original permalinks on #30. Relevant to #305 (Windows test app on CI) — without a Windows test app these paths stay unexercised whichever way they are fixed.
- Langage dominant
- TypeScript
- Étoiles
- 191
- Forks
- 10
- Merge moyen
- 2 j 17 h
- PR mergées (30 j)
- 3
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de callstackincubator/react-native-node-api
-
Android 🤖
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
-
Sanity check of Hermes source directory via environment variable, when building Android projectsOuverteAndroid 🤖 good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
callstackincubator/react-native-node-api#163 · 1 commentaire ·
-
enhancement good first issue gyp-to-cmake
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
callstackincubator/react-native-node-api#161 · 3 commentaires · 1 réaction ·
-
enhancement Host 🏡
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
-
Automatable good first issue
Difficulté 3/5 1-2 jours Accessibilité débutants 15/100
callstackincubator/react-native-node-api#424 · 1 commentaire ·
Toutes les issues de callstackincubator/react-native-node-api
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Doist/todoist-cli#576 ·
Les mainteneurs répondent en général sous 1 jour
-
Suggestion: document (or optionally add) a cheaper-model config for find-skills on Claude CodeOuvertefeature
Difficulté 1/5 Moins d'une heure Accessibilité débutants 72/100
vercel-labs/skills#2370 ·
Les mainteneurs répondent en général sous 1 jour
-
🐛 Bug supabase/cli
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 90/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
CopilotKit/aimock#491 ·
Les mainteneurs répondent en général sous 1 jour