home *** CD-ROM | disk | FTP | other *** search
/ Chip Special: Netware / Chip-Special_1996-08_NetWare_cd2.bin / content / support / token / 4 / windr2.exe / VXDS / DEADLOCK.TXT next >
Encoding:
Text File  |  1995-01-11  |  15.6 KB  |  435 lines

  1.  
  2.               NOVELL TECHNICAL INFORMATION DOCUMENT
  3.  
  4. TITLE:              Deadlocks with Novell NetWare and Windows
  5. DOCUMENT ID:        TID021978
  6. DOCUMENT REVISION:  C
  7. DATE:               11JAN95
  8. ALERT STATUS:       Yellow
  9. INFORMATION TYPE:   Symptom Solution
  10. README FOR:         NA
  11.  
  12. NOVELL PRODUCT and VERSION:
  13. NetWare Client for DOS/MS Windows 1.2
  14.  
  15. ABSTRACT:
  16.  
  17. These document discusses updates that resolve problems when using
  18. Windows 3.x or Windows for Workgroups 3.11 on a Novell network. 
  19. The symptom is a blank screen with a blinking underline curser in
  20. the upper-left-hand corner of the screen and the workstation
  21. hangs.
  22.  
  23. -----------------------------------------------------------------
  24.  
  25. DISCLAIMER
  26. THE ORIGIN OF THIS INFORMATION MAY BE INTERNAL OR EXTERNAL TO
  27. NOVELL.  NOVELL MAKES EVERY EFFORT WITHIN ITS MEANS TO VERIFY
  28. THIS INFORMATION.  HOWEVER, THE INFORMATION PROVIDED IN THIS
  29. DOCUMENT IS FOR YOUR INFORMATION ONLY.  NOVELL MAKES NO EXPLICIT
  30. OR IMPLIED CLAIMS TO THE VALIDITY OF THIS INFORMATION.
  31. -----------------------------------------------------------------
  32.  
  33.  
  34. ADDITIONAL CONFIGURATION
  35.  
  36. Third-Party Product and Version:
  37.  
  38. Windows 3.x
  39. Windows for Workgroups 3.x
  40.  
  41.  
  42. SYMPTOM
  43.  
  44. The symptom is a blank screen with a blinking underline cursor in
  45. the upper-left-hand corner of the screen and the workstation
  46. hangs.  This may happen at any time while in Windows, launching a
  47. DOS box, using a Windows application or exiting Windows.
  48.  
  49. The following is a list of causes/solutions that Novell has
  50. isolated that can cause/remedy the symptom described above.
  51.  
  52.  
  53. CAUSE
  54.  
  55. IPXODI.COM had a problem in SPX.  During a retry, SPX would jump
  56. to invalid memory causing an invalid opcode exception in v86 mode
  57. only when SPX is being used.  This usually manifests itself as a
  58. reboot, hung machine, or blank screen with cursor in upper-left
  59. corner.
  60.  
  61. CAUSE
  62.  
  63. LSL.COM had an issue that was GetStackECBPrescanIsPresent
  64. destroyed the return Flag when an ECB was given.  The symptom of
  65. this problem would most likely manifest it self by a workstation
  66. hang when using a protocol stack that expects to get an ECB from
  67. the LSL under a heavy load.
  68.  
  69. CAUSE
  70.  
  71. LSL.COM also had a problem with the "Do Send for Windows" code
  72. that needed a "Start and End Critical Section" call added.
  73.  
  74. CAUSE
  75.  
  76. An incorrect system configuration including memory management.
  77.  
  78. CAUSE
  79.  
  80. Any I/O, memory, or IRQ conflicts may cause this problem.
  81.  
  82. CAUSE
  83.  
  84. Using third-party device drivers or terminate-and-stay-resident
  85. (TSR) programs.
  86.  
  87. CAUSE
  88.  
  89. Lan Card MLID driver's misuse of ECB buffers. (Update ODI MLIDs
  90. as a standard trouble shooting tip)
  91.  
  92. CAUSE
  93.  
  94. Third party protocol stacks, such as TCPIP.
  95.  
  96. CAUSE
  97.  
  98. VIPX.386 is a Windows 3.x virtualization driver for IPXODI.COM
  99. driver that was enhanced jointly by Novell and Microsoft.  It
  100. virtualizes requests to the globally loaded IPX driver.  When a
  101. request is made to IPX, VIPX will allocate a request buffer in
  102. the system's global memory, copy the original request to the
  103. global buffer and give the global request to IPX.  When the
  104. global request completes, IPX will call VIPX.  VIPX will then
  105. copy any results back to the original request buffer and call the
  106. application that submitted the request.
  107.  
  108. CAUSE
  109.  
  110. Some Windows applications have been found to create the symptom
  111. if when exiting Windows the application is running in the
  112. background in a  minimized state.  If this occurs, close all
  113. applications before leaving Windows.
  114.  
  115. CAUSE
  116.  
  117. There are occasions when using a WINSTART.BAT file (which is
  118. created by the user and placed in the Windows directory) may also
  119. cause Windows to hang when exiting Windows.  Avoid a WINSTART.BAT
  120. file if the symptom  persists.
  121.  
  122.  
  123. CAUSE
  124.  
  125. Microsoft has a patch called VTDA.386 for their Windows 3.1 VTD
  126. (Virtual Timer Device). VTDA.386 is a obtainable from Microsoft. 
  127. Their BBS number  is 206-936-6735 and the file to download is
  128. WW0863.EXE. 
  129.  
  130. *Note: Windows 3.1 was refreshed to 3.11. In the update, VTDA.386
  131. is made available in the box. This patch is installed by default
  132. if you select NetWare in the Windows SETUP option. This also
  133. applies to Windows for Workgroups 3.11 users.
  134.  
  135.  
  136.  Version Compatibility with Dedicated IPX
  137.  ----------------------------------------
  138. Novell officially ceased maintenance on the dedicated IPX driver
  139. (IPX.OBJ) version 3.10 dated 11-21-91.  The last version of VIPX
  140. to explicitly support that driver is 1.10.  The current version
  141. of VIPX supports IPXODI.COM only.
  142.  
  143.  Packet Size Limitations
  144.  -----------------------
  145. VIPX.386 will only virtualize packets that are 8000 (decimal)
  146. bytes or less.  Any DOS and Windows IPX or SPX applications that
  147. use networks with a physical packet size greater than 8000 bytes
  148. may not work with VIPX.386.  For example, IBM Token Ring can be
  149. configured to run with 16 KB packets.  A request by a DOS or
  150. Windows IPX application to send a 16 KB packet will be truncated
  151. to 8000 bytes.  On the other hand, any 16 KB packet that is
  152. received by the LAN driver will be dropped because VIPX cannot
  153. allocate a packet big enough to handle it.
  154.  
  155.  Memory Manager Limitations
  156.  --------------------------
  157. When a request is passed up from IPX, VIPX will immediately test
  158. the request buffer to see if it is in global memory.  If it is in
  159. global memory, the request will be passed back down to IPX
  160. without any virtualization.  For example, a TSR loaded before
  161. Windows is considered to be in global memory.  If that TSR calls
  162. IPX, VIPX will test the requests and pass them back down to IPX. 
  163. This is done because there is no need to virtualize requests that
  164. are already global.
  165.  
  166. The use of UMA memory complicates the test for global memory. 
  167. There are two basic scenarios.
  168.  
  169. The first scenario is when a TSR has been loaded high before
  170. Windows was loaded.  In this case, IPX requests will come from
  171. global UMA memory.  VIPX will simply pass these requests back
  172. down to IPX.
  173.  
  174. The second scenario is when a TSR is loaded high in a Windows
  175. DOSBOX.  In this case, IPX requests will come from local UMA
  176. memory.  VIPX will virtualize these requests.
  177.  
  178. Some memory managers test for global UMA memory and will work
  179. properly under both scenarios.  However, other memory managers
  180. exist that do not work properly under Windows.  With these
  181. drivers, all local DOSBOX UMAs look as if they are GLOBAL UMAs.
  182.  
  183. In the case of the second scenario when a TSR calls IPX, VIPX
  184. will test the request buffer and think that it is in global UMA
  185. memory when it is really in LOCAL UMA memory.  As a result, VIPX
  186. will pass a local ECB to IPX without virtualization.  The normal
  187. result of this is a hung machine or data corruption.
  188.  
  189.  
  190. SOLUTION
  191.  
  192. Novell strongly recommends that you update your dedicated IPX
  193. driver with IPXODI.COM v2.12 or higher, included in VLMUP2 .EXE,
  194. when using versions of VIPX later than 1.10. 
  195.  
  196. Because of the problems with LSL.COM, Novell also recommends that
  197. you update your LSL.COM to v2.05 or higher.  This version is also
  198. available in VLMUP2.EXE in the NOVFILES forum of Compuserve.
  199.  
  200. If you are using third-party memory managers and hang, do not
  201. load TSRs using the IPX interface (including IPX itself) high. 
  202. Load these in conventional memory only.
  203.  
  204. Files Needed:  Size     Date     Version   Location    Owner
  205. ================================================================
  206.   VIPX.386    23855   05-23-94    1.19    WINDR2.EXE   Novell
  207. IPXODI.COM    39353   10-31-94    3.01    VLMUP2.EXE   Novell
  208.    LSL.COM    18313   10-11-94    2.14    VLMUP2.EXE   Novell
  209.   VTDA.386    xxxxx   xx-xx-xx    x.xx    WW0863.EXE   Microsoft
  210.  
  211. Installation Instructions:
  212.  
  213. 1. Rename or backup the old VIPX.386, IPXODI.COM, and LSL.COM
  214. files.
  215.  
  216. 2. Copy IPXODI.COM and LSL.COM to where the network board's
  217. software is initialized.
  218.  
  219. 3. Copy VIPX.386 to your WINDOWS\SYSTEM directory.
  220.  
  221. 4. Virtualize the network board's IRQ in the [VIPX] section of
  222. the SYSTEM.INI if using IBM LAN SUPPORT. (See  Specialized
  223. Configuration Parameters below for instructions)
  224.  
  225. 5. Put TimerCriticalSection=10000 in the [386Enh] section of the
  226. SYSTEM.INI.
  227.  
  228. 6. Download, and implement the VTDA.386 driver from Microsoft as
  229. documented in their README file.
  230.  
  231. 7. Reboot the machine and load the ODI drivers.
  232.  
  233. 8. Enter Windows.
  234.  
  235.  
  236. Solution Specifics:
  237.  
  238.  Specialized Configuration Parameters
  239.  ------------------------------------
  240.  
  241. Under most circumstances, VIPX will work fine under the default
  242. configuration.  However, there may be some applications that
  243. require custom configuration of the driver.  This following is a
  244. list of SYSTEM.INI parameters that can be used to configure VIPX:
  245.  
  246. [VIPX]
  247. VipxMappingPages          =[number of 4K pages]  (default = 16)
  248. VipxFailOverSizedPackets  =[ON|OFF|TRUE|FALSE]   (default = OFF)
  249. VirtualizeIrq[0-F]        =[ON|OFF|TRUE|FALSE]   (default = OFF) 
  250.  
  251. VIPX Parameters
  252.  
  253.  VipxMappingPages
  254.  ----------------
  255. This is the number of pages that VIPX can use to globalize
  256. requests to the global IPXODI.COM driver.  VIPX is not absolutely
  257. guaranteed to have all of these pages available at any one point,
  258. because this is the requested number of pages for shared global
  259. mapping that VIPX makes to the Windows VMM at initialization
  260. time.
  261.  
  262.  VipxFailOverSizedPackets
  263.  ------------------------
  264. This parameter tells VIPX to fail any requests that require more
  265. than the maximum allowed globalization size.  The actual maximum
  266. will vary according to the media the user is using.  The absolute
  267. maximum is 8000 (decimal) bytes.  With media that have smaller
  268. packets than 8000 bytes, the maximum allowed size is the maximum
  269. packet size that can be put onto the media.
  270.  
  271.  VirtualizeIrq[0-F]
  272.  ------------------
  273. VIPX v1.15 or greater avoids a deadlock between the machine and
  274. network board by virtualizing the network board's IRQ.  With ODI
  275. and dedicated IPX (IPX.OBJ) drivers, VIPX will automatically read
  276. the configuration of the network board from the driver and
  277. virtualize the selected IRQs.  However, when using the IBM LAN
  278. Support Program with SLANSUP.OBJ or LANSUP.COM, the LAN IRQ is
  279. not readable from the driver.  The only way to get this
  280. information is to read the network board hardware itself.  The
  281. problem with doing this is that the hardware can be Token Ring,
  282. PCN2 or Ethernet.  VIPX must now be aware of many different
  283. hardware configurations.  Instead of this, VIPX requires the IBM
  284. LAN Support user to specify the network board's IRQ in the [VIPX]
  285. section of the SYSTEM.INI.  IRQs range from 0 to F (hex).  An
  286. example is listed below:
  287.  
  288.      [VIPX]
  289.      VirtualizeIrq2=TRUE
  290.      VirtualizeIrq3=TRUE
  291.  
  292. In this example, VIPX will virtualize both IRQ 2 and IRQ 3. VIPX
  293. can virtualize up to four different LAN IRQs.  The reason for
  294. virtualizing multiple IRQs is to allow other LAN boards and
  295. protocols to be installed on the same PC and prevent them from
  296. deadlocking the machine.  For example, you may have IPX running
  297. through an NE2000 board on IRQ 3 and TCP/IP running through to an
  298. IBM Token-Ring board on IRQ 2.
  299.  
  300. VIPX.386 v1.18 included the two following changes:
  301.  
  302.  1.   This file corrects a possible problem with virtualizing the
  303. network board's interrupt line (IRQ) setting.  The Virtualization
  304. API returns a carry clear (OK) when the IRQ  handle is 0.  Now,
  305. VIPX.386 will not virtualize the IRQ if the IRQ handle is 0. 
  306. Also a code was added to specify which VM (Virtual Machine)
  307. "owns" a virtualized IRQ.
  308.  
  309.  2.   In VIPX.386, a comparison for the VM handle for an AES ECB
  310. in the GLOBAL ECB was added.  VIPX.386 also verifies the VM
  311. handle for an AES ECB in a condition not previously considered.
  312.  
  313. VIPX.386 v1.19 includes the previous two changes plus three
  314. additional changes:
  315.      
  316.  1.   A changed was made to force Windows applications to open
  317. only long-lived sockets.
  318.  
  319.  For example, if you ran a DOS BOX with RCONSOLE with v1.18, it
  320. would allocate a short-lived socket; and if this DOS box was
  321. terminated, VIPX would overwrite an area that caused Windows to
  322. trap with a black screen and flashing cursor. VIPX v1.19 fixes
  323. this issue.
  324.  
  325.  2.   This patch address an issue with a TSR (globally loaded)
  326. that needs to open sockets after Windows is loaded.  Right now,
  327. v1.18 closes all sockets, opened after Windows is loaded, when
  328. exiting Windows.
  329.  
  330.  A fix was made to check for the KeepLongLivedSocketsOpen
  331. parameter. This parameter is set to OFF by default.  If this
  332. parameter is set to ON when an Open Socket operation is issued
  333. from V86 mode, the socket will be considered global and will not
  334. be closed when exiting Windows.  The syntax to change the default
  335. from OFF to ON needs to be added to the end of SYSTEM.INI file as
  336. follows:
  337.  
  338. [VIPX]
  339. KeepLongLivedSocketsOpen=[TRUE|FALSE|ON|OFF] default=FALSE
  340.  
  341.  3.   This patch resolved an issue related to Virtualizing LAN
  342. IRQs.
  343.  
  344.  For example, when exiting enhanced mode Windows back to DOS,
  345. sometimes the cursor will flash in the upper left hand corner and
  346. not return back to the DOS prompt.
  347.  
  348. With this update the releasing of a Virtualized IRQ is restored,
  349. allowing COMMAND.COM to be reloaded, and the SYSTEM to return to
  350. the DOS prompt.
  351.  
  352.  
  353.  TimerCriticalSection
  354.  --------------------
  355. As of version 1.15 of VIPX, TimerCriticalSection is required to
  356. be set on.  The recommended setting is as follows:
  357.  
  358.      [386Enh]
  359.      TimerCriticalSection=10000
  360.  
  361. The reason for this parameter is to avoid a deadlock with the LAN
  362. IRQ Virtualization code.  See "VirtualizeIrq[0-F]" section.
  363.  
  364. ================================================================
  365. LSL.COM
  366.  
  367. Commandline Switches:
  368.  
  369. Valid switches:  U, F, ?, H, C=
  370.  
  371. Only the "U, ?, C=" are documented in the help.
  372.  
  373.  U    Used to unload LSL.
  374.  
  375.  ?    Used for Help.
  376.  
  377.  F    Used to force the unload.
  378.  
  379.  H    Used as an equivalent to "?" switch, and is used by
  380.      many of Novell's other utilities.
  381.  
  382.  C=   Used to change the path or filename of the configuration
  383. file. The "C=" switch is the only two-letter switch that is
  384. valid,  Custom Configuration Files.  When using the "C="
  385. command-line switch, the LSL first tries the [path]\filename as
  386. given.  If the file is not found, then the filename is searched
  387. for in the directory where the LSL was loaded from; and if it
  388. still cannot be found, it looks in the current working directory.
  389. If all these efforts fail, then the LSL reverts back to looking
  390. for a "NET.CFG" file in the directory where the LSL was loaded
  391. from then in the current working directory.  The filename is
  392. considered valid even if the path was incorrect.  After parsing
  393. the Configuration file, the  LSL displays the relative path of
  394. the Configuration file that was parsed.
  395.  
  396.  
  397. ================================================================
  398. IPXODI.COM
  399.  
  400. Command line Switches:
  401.  
  402. Valid switches: /?, /D, /A, /C=, /U, /F
  403.  
  404.  ?    Used for help screen.
  405.  
  406.  D    Used for Eliminate Diagnostic Responder; reduces size by 3
  407. KB.
  408.  
  409.  A    Used for Eliminate Diagnostic Responder and SPX; reduces
  410. size by 9 KB.
  411.  
  412. PLEASE NOTE:  Disabling SPX will mean that SPX applications (such
  413. as RPRINTER, BTRIEVE, RCONSOLE, or NetWare for SAA STRNRTR) will
  414. not be supported on this workstation.
  415.  
  416.  C=   Used to change the path or filename of the configuration
  417. file.  "C=" is the only two letter switch that is valid.  If the
  418. *.CFG file used does not exist a message will be displayed that
  419. the standard NET.CFG file will be used instead.
  420.  
  421.  U    Used to unload.
  422.  
  423.  F    Used to force the unload.
  424.  
  425.  
  426. -----------------------------------------------------------------
  427.  
  428. Any trademarks referenced in this document are the property of
  429. their respective owners.  Consult your product manuals for
  430. complete trademark information.
  431. -----------------------------------------------------------------
  432.  
  433.  
  434.  
  435.