Uploaded image for project: 'Core ReactOS'
  1. Core ReactOS
  2. CORE-20565

dma.c:1039) Scatter/gather list construction failed! after ATAPI commits

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Major
    • None
    • None
    • None

    Description

      After the commit of eb28304 I have seen the error mentioned in the Summary above.

      My procedure was as follows:

      1) Download reactos-bootcd-0.4.16-dev-2644-g5ab1ff1-x86-gcc-lin-dbg.7z from getbuilds .
      2) Build a VMware machine with 2 GB of memory and a 40 GB HDD with other defaults.
      3) Create a new HDD using existing VHD drive of at least 40 GB (corrupted is best) and mount a it to the "D:" drive.
      4) Reboot and resize the desktop to 1024 x 768.
      5) Open Task Manager to the performance tab and leave it in the lower right corner.
      6) Open a command prompt and enter "chkdsk /f D:".
      7) This will cause the error to be generated and the system hangs.
      8) Tab+K still works and a "bt" does not show anything helpful.
      9) Task Manager still updates, but there is almost nothing else that you can do.

      I have attached a screen shot and 2 debug logs.
      Here is a patch that works to fix this for me: scatter-gather-more-elements.patch .

      Notable debug log prints:

      (ntoskrnl/mm/ARM3/sysldr.c:560) multi(0)disk(0)rdisk(0)partition(1)\ReactOS\System32\drivers\pciidex.sys <pciidex.sys>
      ...
      WARNING:  HalCalculateScatterGatherListSize at hal/halx86/generic/dma.c:1183 is UNIMPLEMENTED!
       
      ...
       
      (hal/halx86/generic/dma.c:1039) Scatter/gather list construction failed!
      (win32ss/user/ntuser/desktop.c:3333) err: Attempted to change thread desktop although the thread has windows!
       
      Entered debugger on embedded INT3 at 0x0008:0x805AF88A.
      Eip:
      <ntoskrnl.exe:1af88a (sdk/lib/rtl/i386/debug_asm.S:45 (RtlpBreakWithStatusInstruction))>
      Frames:
      <ntoskrnl.exe:166d00 (ntoskrnl/ke/i386/irqobj.c:214 (KiInterruptDispatch))>
      <ntoskrnl.exe:167371 (ntoskrnl/ke/i386/irqobj.c:315 (KiInterruptTemplateHandler))>
      <ntoskrnl.exe:23dc27 (:0 (P0BootStackData))>
      <hal.dll:b0d0 (hal/halx86/pic/pic.c:164 (HalpHardwareInterrupt0))>
      <hal.dll:c146 (hal/halx86/pic/pic.S:73 (HalEndSystemInterrupt))>
      <hal.dll:ad39 (hal/halx86/generic/timer.c:155 (HalpClockInterruptHandler))>
      <hal.dll:c080 (hal/halx86/generic/trap.S:20 (HalpClockInterrupt))>
      <hal.dll:bcda (hal/halx86/pic/processor.c:36 (HalAllProcessorsStarted))>
      <ntoskrnl.exe:16840c (ntoskrnl/ke/i386/thrdini.c:319 (KiIdleLoop))>
      <ntoskrnl.exe:2729b4 (ntoskrnl/ke/i386/kiinit.c:709 (KiSystemStartupBootStack))>
      <0000000e>
      Couldn't access memory at 0x0000E9E8!
       
      Type "help" for a list of commands.
       
      kdb:>
      

      Attachments

        1. scatter-gather-more-elements.patch
          0.4 kB
        2. Scatter-Gather-Failed-01.png
          Scatter-Gather-Failed-01.png
          127 kB
        3. cpy_40GB.bat
          0.6 kB
        4. 16-2644-chkdsk-03.txt
          48 kB
        5. 16-2644-chkdsk-01.txt
          60 kB

        Issue Links

          Activity

            People

              Unassigned Unassigned
              DougLyons DougLyons
              Votes:
              1 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated: