aaru-dps / Aaru

Aaru Data Preservation Suite
Other
504 stars 33 forks source link

[Console] Markup error and crash when loading specific media image in debug mode. #854

Open claunia opened 2 hours ago

claunia commented 2 hours ago

Version

Development commit

Commit hash

1f164d9c7513c8293c0c385d20e7ad83831ad2d4

Tested debug version?

Which operating systems have you used?

What is the architectural bit size you're using?

What processor are you using?

Description

Some debug output from filesystem information is detected as wrong markup crashing console manager.

Exact command line used

aaru --debug fs info Verbatim.vhd

Expected behavior

Debug information shown.

Actual behavior

Crash.

Output of command execution with debug output enabled

aaru 6.0.0-alpha9+1f164d9c.1f164d9c7513c8293c0c385d20e7ad83831ad2d4
Copyright © 2011-2024 Natalia Portillo

DEBUG (Fs-info command): --debug=True
DEBUG (Fs-info command): --encoding=
DEBUG (Fs-info command): --filesystems=True
DEBUG (Fs-info command): --input=Verbatim.vhd
DEBUG (Fs-info command): --partitions=True
DEBUG (Fs-info command): --verbose=False
DEBUG (Format detection): Trying plugin A2R
DEBUG (Format detection): Trying plugin Aaru Format
DEBUG (Format detection): Trying plugin ACT Apricot Disk Image
DEBUG (Format detection): Trying plugin Alcohol 120% Media Descriptor Structure
DEBUG (Format detection): Trying plugin Anex86 Disk Image
DEBUG (Anex86 plugin): fdihdr.unknown = 0
DEBUG (Anex86 plugin): fdihdr.hddtype = 0
DEBUG (Anex86 plugin): fdihdr.hdrSize = 0
DEBUG (Anex86 plugin): fdihdr.dskSize = 0
DEBUG (Anex86 plugin): fdihdr.bps = 0
DEBUG (Anex86 plugin): fdihdr.spt = 0
DEBUG (Anex86 plugin): fdihdr.heads = 0
DEBUG (Anex86 plugin): fdihdr.cylinders = 0
DEBUG (Format detection): Trying plugin Apple 2IMG
DEBUG (Format detection): Trying plugin Apple Disk Archival/Retrieval Tool
DEBUG (Format detection): Trying plugin Apple DiskCopy 4.2
DEBUG (DiskCopy 4.2 plugin): tmp_header.diskName = ""
DEBUG (DiskCopy 4.2 plugin): tmp_header.dataSize = 0 bytes
DEBUG (DiskCopy 4.2 plugin): tmp_header.tagSize = 0 bytes
DEBUG (DiskCopy 4.2 plugin): tmp_header.dataChecksum = 0x00000000
DEBUG (DiskCopy 4.2 plugin): tmp_header.tagChecksum = 0x00000000
DEBUG (DiskCopy 4.2 plugin): tmp_header.format = 0x00
DEBUG (DiskCopy 4.2 plugin): tmp_header.fmtByte = 0x00
DEBUG (DiskCopy 4.2 plugin): tmp_header.valid = 0
DEBUG (DiskCopy 4.2 plugin): tmp_header.reserved = 0
DEBUG (Format detection): Trying plugin Apple New Disk Image Format
DEBUG (Format detection): Trying plugin Apple NIB
DEBUG (Format detection): Trying plugin Apple Universal Disk Image Format
DEBUG (Format detection): Trying plugin Basic Lisa Utility
DEBUG (Format detection): Trying plugin BlindWrite 4
DEBUG (Format detection): Trying plugin BlindWrite 5
DEBUG (Format detection): Trying plugin CDRDAO tocfile
DEBUG (Format detection): Trying plugin CDRWin cuesheet
DEBUG (Format detection): Trying plugin CisCopy Disk Image (DC-File)
DEBUG (Format detection): Trying plugin CloneCD
DEBUG (Format detection): Trying plugin CopyTape
DEBUG (Format detection): Trying plugin CPCEMU Disk-File and Extended CPC Disk-File
DEBUG (Format detection): Trying plugin d2f disk image
DEBUG (Format detection): Trying plugin D88 Disk Image
DEBUG (D88 plugin): d88hdr.name = ""
DEBUG (D88 plugin): d88hdr.reserved is empty? = True
DEBUG (D88 plugin): d88hdr.write_protect = 0x00
DEBUG (D88 plugin): d88hdr.disk_type = D2 (0)
DEBUG (D88 plugin): d88hdr.disk_size = 0
DEBUG (Format detection): Trying plugin Digital Research DiskCopy
DEBUG (Format detection): Trying plugin DIM Disk Image
DEBUG (Format detection): Trying plugin DiscFerret
DEBUG (Format detection): Trying plugin DiscJuggler
DEBUG (DiscJuggler plugin): dscLen = 0
DEBUG (Format detection): Trying plugin DiskDupe DDI Disk Image
DEBUG (Format detection): Trying plugin Dreamcast GDI image
DEBUG (Format detection): Trying plugin Dunfield's IMD
DEBUG (Format detection): Trying plugin HD-Copy disk image
DEBUG (Format detection): Trying plugin IBM SaveDskF
DEBUG (Format detection): Trying plugin KryoFlux STREAM
DEBUG (Format detection): Trying plugin MAME Compressed Hunks of Data
DEBUG (Format detection): Trying plugin MAXI Disk image
DEBUG (MAXI Disk plugin): tmp_header.unknown = 0
DEBUG (MAXI Disk plugin): tmp_header.diskType = 0
DEBUG (MAXI Disk plugin): tmp_header.heads = 0
DEBUG (MAXI Disk plugin): tmp_header.cylinders = 0
DEBUG (MAXI Disk plugin): tmp_header.bytesPerSector = 0
DEBUG (MAXI Disk plugin): tmp_header.sectorsPerTrack = 0
DEBUG (MAXI Disk plugin): tmp_header.unknown2 = 0
DEBUG (MAXI Disk plugin): tmp_header.unknown3 = 0
DEBUG (Format detection): Trying plugin Microsoft VHDX
DEBUG (Format detection): Trying plugin Nero Burning ROM image
DEBUG (Nero plugin): imageStream.Length = 500107862528
DEBUG (Nero plugin): footerV1.ChunkID = 0x00000000
DEBUG (Nero plugin): footerV1.FirstChunkOffset = 0
DEBUG (Nero plugin): footerV2.ChunkID = 0x00000000
DEBUG (Nero plugin): footerV2.FirstChunkOffset = 0
DEBUG (Format detection): Trying plugin Parallels disk image
DEBUG (Format detection): Trying plugin PartClone disk image
DEBUG (Format detection): Trying plugin Partimage disk image
DEBUG (Format detection): Trying plugin QEMU Copy-On-Write disk image
DEBUG (Format detection): Trying plugin QEMU Copy-On-Write disk image v2
DEBUG (QCOW2 plugin): qHdr.magic = 0x00000000
DEBUG (QCOW2 plugin): qHdr.version = 0
DEBUG (Format detection): Trying plugin QEMU Enhanced Disk image
DEBUG (Format detection): Trying plugin Ray Arachelian's Disk IMage
DEBUG (Ray Arachelian's Disk IMage plugin): header.signature = 
DEBUG (Ray Arachelian's Disk IMage plugin): header.diskType = 0
DEBUG (Ray Arachelian's Disk IMage plugin): header.heads = 0
DEBUG (Ray Arachelian's Disk IMage plugin): header.cylinders = 0
DEBUG (Ray Arachelian's Disk IMage plugin): header.sectorsPerTrack = 0
DEBUG (Ray Arachelian's Disk IMage plugin): header.signature matches? = False
DEBUG (Format detection): Trying plugin RS-IDE Hard Disk Image
DEBUG (Format detection): Trying plugin Spectrum Floppy Disk Image
DEBUG (Format detection): Trying plugin SuperCardPro
DEBUG (Format detection): Trying plugin Sydex CopyQM
DEBUG (Format detection): Trying plugin Sydex TeleDisk
DEBUG (Format detection): Trying plugin T98 Hard Disk Image
DEBUG (T98 plugin): cylinders = 0
DEBUG (Format detection): Trying plugin T98-Next NHD r0 Disk Image
DEBUG (Format detection): Trying plugin Virtual PC
Image format identified by Virtual PC.

DEBUG (Virtual PC plugin): Header checksum = 0x00000000, calculated = 0xFFFFF718
DEBUG (Virtual PC plugin): Header checksum = 0xFFFFE905, calculated = 0xFFFFE905
DEBUG (Virtual PC plugin): footer.cookie = 0x636F6E6563746978
DEBUG (Virtual PC plugin): footer.features = 0x00000002
DEBUG (Virtual PC plugin): footer.version = 0x00010000
DEBUG (Virtual PC plugin): footer.offset = 18446744073709551615
DEBUG (Virtual PC plugin): footer.timestamp = 0x2EDBAD94 (11/28/2024 10:39:16 PM)
DEBUG (Virtual PC plugin): footer.creatorApplication = 0x61617275 ("aaru")
DEBUG (Virtual PC plugin): footer.creatorVersion = 0x05030200
DEBUG (Virtual PC plugin): footer.creatorHostOS = 0x5769326B ("Wi2k")
DEBUG (Virtual PC plugin): footer.originalSize = 500107862016
DEBUG (Virtual PC plugin): footer.currentSize = 500107862016
DEBUG (Virtual PC plugin): footer.diskGeometry = 0xC93D103F (C/H/S: 51517/16/63)
DEBUG (Virtual PC plugin): footer.diskType = 0x00000002
DEBUG (Virtual PC plugin): footer.checksum = 0xFFFFE905
DEBUG (Virtual PC plugin): footer.uniqueId = 75032a47-0000-0000-0000-000000000000
DEBUG (Virtual PC plugin): footer.savedState = 0x00
DEBUG (Virtual PC plugin): footer.reserved's SHA1 = 0x85c37df2fb35b828d0bef525f6d8b7ee5cda6f60
DEBUG (Apricot partitions plugin): label.version = ""
DEBUG (Apricot partitions plugin): label.operatingSystem = 0 (Invalid)
DEBUG (Apricot partitions plugin): label.writeProtected = False
DEBUG (Apricot partitions plugin): label.copyProtected = False
DEBUG (Apricot partitions plugin): label.bootType = 0 (Non-bootable)
DEBUG (Apricot partitions plugin): label.partitionCount = 0
DEBUG (Apricot partitions plugin): label.winchester = False
DEBUG (Apricot partitions plugin): label.sectorSize = 0
DEBUG (Apricot partitions plugin): label.spt = 0
DEBUG (Apricot partitions plugin): label.cylinders = 0
DEBUG (Apricot partitions plugin): label.heads = 0
DEBUG (Apricot partitions plugin): label.interleave = 0
DEBUG (Apricot partitions plugin): label.skew = 0
DEBUG (Apricot partitions plugin): label.bootLocation = 0
DEBUG (Apricot partitions plugin): label.bootSize = 0
DEBUG (Apricot partitions plugin): label.bootAddress = 0x00000000
DEBUG (Apricot partitions plugin): label.bootOffset:label.bootSegment = 0000:0000
DEBUG (Apricot partitions plugin): label.firstDataBlock = 0
DEBUG (Apricot partitions plugin): label.generation = 0
DEBUG (Apricot partitions plugin): label.copyCount = 0
DEBUG (Apricot partitions plugin): label.maxCopies = 0
DEBUG (Apricot partitions plugin): label.serialNumber = ""
DEBUG (Apricot partitions plugin): label.partNumber = ""
DEBUG (Apricot partitions plugin): label.copyright = ""
DEBUG (Apricot partitions plugin): label.mainBPB.bps = 0
DEBUG (Apricot partitions plugin): label.mainBPB.spc = 0
DEBUG (Apricot partitions plugin): label.mainBPB.rsectors = 0
DEBUG (Apricot partitions plugin): label.mainBPB.fats_no = 0
DEBUG (Apricot partitions plugin): label.mainBPB.root_ent = 0
DEBUG (Apricot partitions plugin): label.mainBPB.sectors = 0
DEBUG (Apricot partitions plugin): label.mainBPB.media = 0
DEBUG (Apricot partitions plugin): label.mainBPB.spfat = 0
DEBUG (Apricot partitions plugin): label.mainBPB.diskType = 0 (MF1DD 70-track)
DEBUG (Apricot partitions plugin): label.mainBPB.startSector = 0
DEBUG (Apricot partitions plugin): label.fontName = ""
DEBUG (Apricot partitions plugin): label.keyboardName = ""
DEBUG (Apricot partitions plugin): label.biosMajorVersion = 0
DEBUG (Apricot partitions plugin): label.biosMinorVersion = 0
DEBUG (Apricot partitions plugin): label.diagnosticsFlag = False
DEBUG (Apricot partitions plugin): label.prnDevice = 0 (Parallel)
DEBUG (Apricot partitions plugin): label.bellVolume = 0
DEBUG (Apricot partitions plugin): label.enableCache = False
DEBUG (Apricot partitions plugin): label.enableGraphics = False
DEBUG (Apricot partitions plugin): label.dosLength = 0
DEBUG (Apricot partitions plugin): label.fontLength = 0
DEBUG (Apricot partitions plugin): label.keyboardLength = 0
DEBUG (Apricot partitions plugin): label.dosStart = 0
DEBUG (Apricot partitions plugin): label.fontStart = 0
DEBUG (Apricot partitions plugin): label.keyboardStart = 0
DEBUG (Apricot partitions plugin): label.keyboardVolume = 0
DEBUG (Apricot partitions plugin): label.autorepeat = False
DEBUG (Apricot partitions plugin): label.autorepeatLeadIn = 0
DEBUG (Apricot partitions plugin): label.autorepeatInterval = 0
DEBUG (Apricot partitions plugin): label.microscreenMode = 0
DEBUG (Apricot partitions plugin): label.spareKeyboard is null? = True
DEBUG (Apricot partitions plugin): label.lineMode = 0 (256 lines)
DEBUG (Apricot partitions plugin): label.lineWidth = 0 (80 columns)
DEBUG (Apricot partitions plugin): label.imageOff = False
DEBUG (Apricot partitions plugin): label.spareScreen is null? = True
DEBUG (Apricot partitions plugin): label.txBaudRate = 0 (50 bps)
DEBUG (Apricot partitions plugin): label.rxBaudRate = 0 (50 bps)
DEBUG (Apricot partitions plugin): label.txBits = 0
DEBUG (Apricot partitions plugin): label.rxBits = 0
DEBUG (Apricot partitions plugin): label.stopBits = 0 (1 bits)
DEBUG (Apricot partitions plugin): label.parityCheck = False
DEBUG (Apricot partitions plugin): label.parityType = 0 (None)
DEBUG (Apricot partitions plugin): label.txXonXoff = False
DEBUG (Apricot partitions plugin): label.rxXonXoff = False
DEBUG (Apricot partitions plugin): label.xonCharacter = 0
DEBUG (Apricot partitions plugin): label.xoffCharacter = 0
DEBUG (Apricot partitions plugin): label.rxXonXoffBuffer = 0
DEBUG (Apricot partitions plugin): label.dtrDsr = False
DEBUG (Apricot partitions plugin): label.ctsRts = False
DEBUG (Apricot partitions plugin): label.nullsAfterCr = 0
DEBUG (Apricot partitions plugin): label.nullsAfterFF = 0
DEBUG (Apricot partitions plugin): label.lfAfterCRSerial = False
DEBUG (Apricot partitions plugin): label.biosErrorReportSerial = False
DEBUG (Apricot partitions plugin): label.spareSerial is null? = True
DEBUG (Apricot partitions plugin): label.lfAfterCrParallel = False
DEBUG (Apricot partitions plugin): label.selectLine = False
DEBUG (Apricot partitions plugin): label.paperEmpty = False
DEBUG (Apricot partitions plugin): label.faultLine = False
DEBUG (Apricot partitions plugin): label.biosErrorReportParallel = False
DEBUG (Apricot partitions plugin): label.spareParallel is null? = True
DEBUG (Apricot partitions plugin): label.spareWinchester is null? = True
DEBUG (Apricot partitions plugin): label.parkingEnabled = False
DEBUG (Apricot partitions plugin): label.formatProtection = False
DEBUG (Apricot partitions plugin): label.spareRamDisk is null? = True
Error reading file: Unbalanced markup stack. Did you forget to close a tag?
System.InvalidOperationException: Unbalanced markup stack. Did you forget to close a tag?
  at Paragraph Spectre.Console.MarkupParser.Parse(string text, Style style) in /_/src/Spectre.Console/Internal/Text/Markup/MarkupParser.cs:55                                                                                             
  at void Spectre.Console.AnsiConsoleExtensions.Markup(IAnsiConsole console, string value) in /_/src/Spectre.Console/Extensions/AnsiConsoleExtensions.Markup.cs:77                                                                        
  at void Spectre.Console.AnsiConsoleExtensions.Markup(IAnsiConsole console, IFormatProvider provider, string format, params object[] args) in /_/src/Spectre.Console/Extensions/AnsiConsoleExtensions.Markup.cs:47                       
  at void Spectre.Console.AnsiConsoleExtensions.MarkupLine(IAnsiConsole console, IFormatProvider provider, string format, params object[] args) in /_/src/Spectre.Console/Extensions/AnsiConsoleExtensions.Markup.cs:129                  
  at void Spectre.Console.AnsiConsoleExtensions.MarkupLine(IAnsiConsole console, string format, params object[] args) in /_/src/Spectre.Console/Extensions/AnsiConsoleExtensions.Markup.cs:88                                             
  at void Aaru.Commands.Filesystem.FilesystemInfoCommand.<>c__DisplayClass2_1.<Invoke>b__2(string format, object[] objects) in /home/claunia/Development/Aaru/Aaru/Aaru/Commands/Filesystem/Info.cs:91                                    
  at void Aaru.Console.AaruConsole.DebugWriteLine(string module, string format, params object[] arg) in /home/claunia/Development/Aaru/Aaru/Aaru.Console/AaruConsole.cs:188                                                               
  at bool Aaru.Partitions.Apricot.GetInformation(IMediaImage imagePlugin, out List<Partition> partitions, ulong sectorOffset) in /home/claunia/Development/Aaru/Aaru/Aaru.Partitions/Apricot.cs:300                                       
  at List<Partition> Aaru.Core.Partitions.GetAll(IMediaImage image) in /home/claunia/Development/Aaru/Aaru/Aaru.Core/Partitions.cs:113                                                                                                    
  at void Aaru.Commands.Filesystem.FilesystemInfoCommand.<>c__DisplayClass2_4.<Invoke>b__6(ProgressContext ctx) in /home/claunia/Development/Aaru/Aaru/Aaru/Commands/Filesystem/Info.cs:235                                               
  at Task Spectre.Console.Progress.<>c__DisplayClass29_0.<Start>b__0(ProgressContext ctx) in /_/src/Spectre.Console/Live/Progress/Progress.cs:70                                                                                          
  at void Spectre.Console.Progress.<>c__DisplayClass31_0.<<StartAsync>b__0>d.MoveNext() in /_/src/Spectre.Console/Live/Progress/Progress.cs:103                                                                                           
  at void Spectre.Console.Progress.<>c__DisplayClass32_0`1.<<StartAsync>b__0>d.MoveNext() in /_/src/Spectre.Console/Live/Progress/Progress.cs:138                                                                                         
  at async Task<T> Spectre.Console.Internal.DefaultExclusivityMode.RunAsync<T>(Func<Task<T>> func) in /_/src/Spectre.Console/Internal/DefaultExclusivityMode.cs:40                                                                        
  at async Task<T> Spectre.Console.Progress.StartAsync<T>(Func<ProgressContext, Task<T>> action) in /_/src/Spectre.Console/Live/Progress/Progress.cs:121                                                                                  
  at async Task Spectre.Console.Progress.StartAsync(Func<ProgressContext, Task> action) in /_/src/Spectre.Console/Live/Progress/Progress.cs:101                                                                                           
  at void Spectre.Console.Progress.Start(Action<ProgressContext> action) in /_/src/Spectre.Console/Live/Progress/Progress.cs:74                                                                                                           
  at void Aaru.Core.Spectre.ProgressSingleSpinner(Action<ProgressContext> action) in /home/claunia/Development/Aaru/Aaru/Aaru.Core/Spectre.cs:11                                                                                          
  at int Aaru.Commands.Filesystem.FilesystemInfoCommand.Invoke(bool verbose, bool debug, string encoding, bool filesystems, bool partitions, string imagePath) in /home/claunia/Development/Aaru/Aaru/Aaru/Commands/Filesystem/Info.cs:232
Uploading statistics
claunia commented 2 hours ago

[Console] Markup error and crash when loading specific media image in debug mode