Bonjour à tous,
Je poste mon soucis sans grand espoir, mais bon, sait-on jamais:
J'ai un bout de code (confidentiel, donc peux pas le poster) qui fait un appel à Fvsinit32 pour initialiser une structure avec les valeur null définis de la vue correspondante de cette manière:
J'ai un segfault qui se pointe (pas tout le temps) dans cette portion de code. Quand j'analyse le core généré via dbx, la stack trace donne:
Code : Sélectionner tout - Visualiser dans une fenêtre à part Fvsinit32(structure, "nom_de_la_vue")
Je me dis donc que c'est un problème de thread, j'ai cru comprendre que cette fonction n'était pas thread safe via ce lien:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Segmentation fault in _e_mutex_lock at 0xd1398400 ($t1) 0xd1398400 (_e_mutex_lock+0x20) a81f003c lha r0,0x3c(r31) (dbx) where _e_mutex_lock() at 0xd1398400 _Finit_cache32() at 0xd1373d34 Fvsinit32() at 0xd1381330
Le problème intervient uniquement lorsque nous sommes plusieurs à faire des requêtes sur le serveur (le segfault apparait sur le serveur).A thread in a multithreaded application may issue a call to Fvsinit() or Fvsinit32() while running in any context state, including TPINVALIDCONTEXT.
Le segfault est tout le temps au même endroit (Fvsinit32), mais ne dépend pas du cheminement parcouru.
La plupart des appels à "Fvsinit32" passent sans soucis.
Donc à votre bon coeur, si vous avez des pistes ou avez connu des soucis avec ces fonctions......
Merci d'avance .
Partager