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:
Fvsinit32(structure, "nom_de_la_vue")
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:
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 |
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:
A thread in a multithreaded application may issue a call to Fvsinit() or Fvsinit32() while running in any context state, including TPINVALIDCONTEXT.
Le problème intervient uniquement lorsque nous sommes plusieurs à faire des requêtes sur le serveur (le segfault apparait sur le serveur).
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