[W2K3] [CPS4x] Plantage intempestif de MSOffice Word 2003

Serveur Windows 2003 R2 SP2

Citrix Presentation Sever 4.0 / PSF400W2K3R04

MSOffice 2003 SP3

Client ICA 10.200.2650



Chez un client qui a la configuration ci-dessus, j’ai le problème suivant:

1 à 2 fois par jour, mon application ouvre un document Word (via la méthode Application.Documents.Open), la secrétaire tape quelques mots du compte-rendu et change de ligne (touche Entrée ou souris). Winword ne répond plus (se fige, se bloque). Ou plante en générant, dans le journal des évènements, l’erreur suivante : “faulting application winword.exe, …” (cf copie d’écran).

Malheureusement je n’ai pas pu récupérer le dump; je devrais pouvoir le récupérer à la prochaine intervention.



Auriez-vous une idée, une suggestion, etc.

Par avance merci.

Guillaume

regarde les différentes solutions proposées ici : http://www.eventid.net/display.asp?eventid=1000&eventno=4030&source=Microsoft%20Office%2011&phase=1

Merci ThinIsFat pour votre réponse. Il faudra un peu de temps avant de pouvoir faire un retour sur les suggestions du lien, le temps de les faire valider par les différents services (validation, intégration, production).



Nous avons réussi, à récupérer un dump (en pj). Je ne suis pas un spécialiste d’analyse de ce type de document. Si quelqu’un à le temps de jeter un oeuil (à priori les balises actives Outlook se déclenchent, mais comme Outlook n’est pas présent winword.exe plante). Ci-dessous un extrait des dernières lignse du dump:

"L ’ i d e n t i f i c a t e u r d e s b a l i s e s a c t i v e s C o n t a c t O u t l o o k s e m b l e a v o i r p r o v o q u é l ’ a r r ê t a c c i d e n t e l d e W o r d . I l e s t d é s a c t i v é "

ATTENTION: c’est un mini dump et donc ce genre de dump est incomplet et ne permet pas toujours de comprendre pourquoi un process plante !!! conseil à tous : toujours configurer correctement ntsd si vous souhaitez récupérer un dump de façon automatique, comme décrit sur la KB Citrix


STACK_TEXT:
WARNING: Stack unwind information not available. Following frames may be wrong.
0547fb8c 05ccc51e 00090000 30f9b140 30f9b15a INTLNAME+0x118aa
0547fc00 05ccd754 022e1a90 0547fcc0 0020a234 INTLNAME+0xc51e
0547fca8 775c516e 05d41fd8 022cc6ac 00000008 INTLNAME+0xd754
0547fcd8 775d4abf 05d41fd8 0000001c 00000004 oleaut32!DispCallFunc+0x16a
0547fd68 05cc9af0 04d8b27c 05d41fd8 00000000 oleaut32!CTypeInfo2::Invoke+0x234
0547fd98 05cc9c52 05d41fd8 00000008 30df84b0 INTLNAME+0x9af0
0547fdc4 30f9af84 05d41fd8 00000008 30df84b0 INTLNAME+0x9c52
0547ff28 30f9ad76 00000000 04d8ac48 00000001 MSO+0x30af84
0547ff70 30f9aab2 00000001 04d8ac48 00000000 MSO+0x30ad76
0547ffb8 7c824829 04d8fb90 00000000 00000000 MSO+0x30aab2
0547ffec 00000000 30d5cf6c 04d8fb90 00000000 kernel32!BaseThreadStart+0x34


STACK_COMMAND: ~7s; .ecxr ; kb

SYMBOL_STACK_INDEX: 0

SYMBOL_NAME: INTLNAME+118aa

FOLLOWUP_NAME: MachineOwner

MODULE_NAME: INTLNAME

IMAGE_NAME: INTLNAME.DLL

0:007> ~* kv

0 Id: 1200.26b8 Suspend: 1 Teb: 7ffdf000 Unfrozen
ChildEBP RetAddr Args to Child
0012d154 7c947cfb 7c82202c 00000001 0012d1a4 ntdll!KiFastSystemCallRet (FPO: [0,0,0])
0012d158 7c82202c 00000001 0012d1a4 00000001 ntdll!NtWaitForMultipleObjects+0xc (FPO: [5,0,0])
0012d200 77f4bbd1 00000001 0012d228 00000000 kernel32!WaitForMultipleObjectsEx+0x11a (FPO: [SEH])
0012d25c 77f4ce36 00000000 00000000 00000032 user32!RealMsgWaitForMultipleObjectsEx+0x141 (FPO: [5,13,0])
0012d278 300c1a69 00000000 00000000 00000000 user32!MsgWaitForMultipleObjects+0x1f (FPO: [5,0,0])
WARNING: Stack unwind information not available. Following frames may be wrong.
0012d290 00000000 00000040 000001c8 00000204 WINWORD+0xc1a69

1 Id: 1200.4514 Suspend: 1 Teb: 7ffde000 Unfrozen
ChildEBP RetAddr Args to Child
00b0fea0 7c947cfb 7c92e5bb 00000002 00b0fef0 ntdll!KiFastSystemCallRet (FPO: [0,0,0])
00b0fea4 7c92e5bb 00000002 00b0fef0 00000001 ntdll!NtWaitForMultipleObjects+0xc (FPO: [5,0,0])
00b0ff48 7c92e4a2 00000002 00b0ff70 00000000 ntdll!EtwpWaitForMultipleObjectsEx+0xf7 (FPO: [SEH])
00b0ffb8 7c824829 00000000 00000000 00000000 ntdll!EtwpEventPump+0x27f (FPO: [1,18,0])
00b0ffec 00000000 7c92e1fa 00000000 00000000 kernel32!BaseThreadStart+0x34 (FPO: [SEH])

2 Id: 1200.23cc Suspend: 1 Teb: 7ffdd000 Unfrozen
ChildEBP RetAddr Args to Child
013afe18 7c94783b 77c585ac 000001b8 013aff74 ntdll!KiFastSystemCallRet (FPO: [0,0,0])
013afe1c 77c585ac 000001b8 013aff74 00000000 ntdll!NtReplyWaitReceivePortEx+0xc (FPO: [5,0,0])
013aff84 77c58792 013affac 77c5872d 00165050 rpcrt4!LRPC_ADDRESS::ReceiveLotsaCalls+0x198 (FPO: [0,14,0])
013aff8c 77c5872d 00165050 00000000 00000000 rpcrt4!RecvLotsaCallsWrapper+0xd (FPO: [1,0,0])
013affac 77c4b110 0016bcb0 013affec 7c824829 rpcrt4!BaseCachedThreadRoutine+0x9d (FPO: [1,2,4])
013affb8 7c824829 001966e8 00000000 00000000 rpcrt4!ThreadStartRoutine+0x1b (FPO: [1,0,0])
013affec 00000000 77c4b0f5 001966e8 00000000 kernel32!BaseThreadStart+0x34 (FPO: [SEH])

3 Id: 1200.1a5c Suspend: 1 Teb: 7ffdc000 Unfrozen
ChildEBP RetAddr Args to Child
014aff08 7c946f4b 7c801ed1 00000000 014aff4c ntdll!KiFastSystemCallRet (FPO: [0,0,0])
014aff0c 7c801ed1 00000000 014aff4c 7c821c96 ntdll!NtDelayExecution+0xc (FPO: [2,0,0])
014aff74 7c8024ed 0000ea60 00000000 014affac kernel32!SleepEx+0x68 (FPO: [SEH])
014aff84 774cbb0f 0000ea60 001bc6a8 774cbab4 kernel32!Sleep+0xf (FPO: [1,0,0])
014aff90 774cbab4 00000000 00000000 001bc6a8 ole32!CROIDTable::WorkerThreadLoop+0x14 (FPO: [1,0,0])
014affac 774c1704 00000000 014affec 7c824829 ole32!CRpcThread::WorkerLoop+0x26 (FPO: [0,1,0])
014affb8 7c824829 001bc6a8 00000000 00000000 ole32!CRpcThreadCache::RpcWorkerThreadEntry+0x20 (FPO: [1,0,4])
014affec 00000000 774c16e4 001bc6a8 00000000 kernel32!BaseThreadStart+0x34 (FPO: [SEH])

4 Id: 1200.25a8 Suspend: 1 Teb: 7ffda000 Unfrozen
ChildEBP RetAddr Args to Child
015cfe18 7c94783b 77c585ac 000001b8 015cff74 ntdll!KiFastSystemCallRet (FPO: [0,0,0])
015cfe1c 77c585ac 000001b8 015cff74 00000000 ntdll!NtReplyWaitReceivePortEx+0xc (FPO: [5,0,0])
015cff84 77c58792 015cffac 77c5872d 00165050 rpcrt4!LRPC_ADDRESS::ReceiveLotsaCalls+0x198 (FPO: [0,14,0])
015cff8c 77c5872d 00165050 00000000 00000000 rpcrt4!RecvLotsaCallsWrapper+0xd (FPO: [1,0,0])
015cffac 77c4b110 0016bcb0 015cffec 7c824829 rpcrt4!BaseCachedThreadRoutine+0x9d (FPO: [1,2,4])
015cffb8 7c824829 001bb7a0 00000000 00000000 rpcrt4!ThreadStartRoutine+0x1b (FPO: [1,0,0])
015cffec 00000000 77c4b0f5 001bb7a0 00000000 kernel32!BaseThreadStart+0x34 (FPO: [SEH])

5 Id: 1200.38c8 Suspend: 1 Teb: 7ffd9000 Unfrozen
ChildEBP RetAddr Args to Child
029efe48 7c947cfb 7c82202c 00000002 029efe98 ntdll!KiFastSystemCallRet (FPO: [0,0,0])
029efe4c 7c82202c 00000002 029efe98 00000001 ntdll!NtWaitForMultipleObjects+0xc (FPO: [5,0,0])
029efef4 77f4bbd1 00000002 029eff1c 00000000 kernel32!WaitForMultipleObjectsEx+0x11a (FPO: [SEH])
029eff50 77f4ce36 00000001 029eff9c ffffffff user32!RealMsgWaitForMultipleObjectsEx+0x141 (FPO: [5,13,0])
029eff6c 02881976 00000001 029eff9c 00000000 user32!MsgWaitForMultipleObjects+0x1f (FPO: [5,0,0])
WARNING: Stack unwind information not available. Following frames may be wrong.
029eff84 00000000 00000000 029effec 00000000 GDIPLUS+0x141976

6 Id: 1200.32fc Suspend: 1 Teb: 7ffd8000 Unfrozen
ChildEBP RetAddr Args to Child
034cff2c 7c946f4b 7c801ed1 00000000 034cff70 ntdll!KiFastSystemCallRet (FPO: [0,0,0])
034cff30 7c801ed1 00000000 034cff70 000000c8 ntdll!NtDelayExecution+0xc (FPO: [2,0,0])
034cff98 7c8024ed 000000c8 00000000 034cffec kernel32!SleepEx+0x68 (FPO: [SEH])
034cffa8 65002008 000000c8 00000000 00000000 kernel32!Sleep+0xf (FPO: [1,0,0])
WARNING: Stack unwind information not available. Following frames may be wrong.
034cffec 00000000 65001ff8 00000000 00000000 VBE6+0x2008

# 7 Id: 1200.3e60 Suspend: 0 Teb: 7ffd7000 Unfrozen
ChildEBP RetAddr Args to Child
0547db3c 7c947d0b 7c821d1e 000004d0 00000000 ntdll!KiFastSystemCallRet (FPO: [0,0,0])
0547db40 7c821d1e 000004d0 00000000 0547db84 ntdll!NtWaitForSingleObject+0xc (FPO: [3,0,0])
0547dbb0 7c821c8d 000004d0 00004e20 00000000 kernel32!WaitForSingleObjectEx+0xac (FPO: [SEH])
0547dbc4 314f7709 000004d0 00004e20 00000001 kernel32!WaitForSingleObject+0x12 (FPO: [2,0,0])
WARNING: Stack unwind information not available. Following frames may be wrong.
0547e82c 314f7b9c 00000000 0547f2ac 0547f570 MSO+0x867709
0547e8c0 00000000 00000000 00000000 00000000 MSO+0x867b9c

comme tu peux le voir, WinDbg indique la thread 7 (~7s) comme étant la responsable du crash. De même, aucune des 7 threads du dump (ATTENTION le dump n'est PAS complet) ne contient de fichiers Citrix, donc cela confirme que le souci semble lié à du Microsoft uniquement mais seul un dump complet de winword.exe pourra confirmer (ou pas) cela.

dans tous les cas :
1. vérifier rapidement chacune des suggestions du lien donné précédemment (si la société traine des pieds, cela veut dire que le problème n'est pas important... du moins de mon côté c'est ainsi que je gère les priorités.. ;D)
2. une fois ces points vérifiés, récupérer un dump complet du process (avec ntsd, ou voire installer Windbg directement pour surveiller word)

Merci pour votre réponse.

Je pense que nous avons les élèments pour résoudre notre problème; en effet :

  • La librairie intlname.dll est utilisée par les “balises actives” de winword.
  • Elles sont installées sur le serveur, mais pas outllook.

    => quand le process "balises actives " de word pense détecter le nom d’une personne -> crash.



    Si l’installation des “balises actives” est inhibée, le librairie intlname.dll n’est plus présente sur le serveur.

    Le client a modifié l’installation de Microsoft Office 2003 sur l’un de ses serveurs de production.

    Nous attendons son retour pour savoir si le problème est résolue par cette modification dans l’installation.



    Pour ma culture personnel, et surtout parceque j’en aurais surement besoin “demain”; vous faite référence à une KB citrix, vous pensiez à une en particulier ?



    J’ai fais une bref recherche sur la toile et j’ai plusieurs résultats (qui me semblent complémentaires):
  • CTX105888 - How to Set the NT Symbolic Debugger as a Default Windows Postmortem Debugger,
  • CTX108173 - How to Attach the NT Symbolic Debugger to a Process and Save a Dump,
  • CTX109363 - How to Capture a Dump File for a CLR .NET Exception.

yep je pensais à CTX105888