Opened 2 months ago

#15595 new defect

SCUMM: HE: Crash / ThreadSanitizer data race when quitting 'Humongous Interactive Catalog'

Reported by: dwatteau Owned by:
Priority: normal Component: Engine: SCUMM
Version: Keywords:
Cc: Game:

Description

I've found a French copy (PC/Mac) of Freddi Fish 4 in a thrift store yesterday, and the CD also has a copy of the more obscure HE entry I know: Humongous Interactive Catalog (Preview/French) (full MD5 of the the Preview.cup file: ca7d371621c113c2c8b3df041bc0bebf).

Of course this means I had to stress it a bit on some of my environments ;)

How to reproduce:

  1. Have gui_return_to_launcher_at_exit=true and ScummVM in windowed mode
  2. Either build ScummVM with ThreadSanitizer on (e.g. --enable-tsan --enable-debug) or launch it on something like my OSX PPC that's good at hitting data race issues :p
  3. After the first purple HE screen is done being displayed, and when the first scene with Putt-Putt appears, close the ScummVM window to quit the preview

I then either hit a data race on vptr (ctor/dtor vs virtual call) error with ThreadSanitizer, or an invalid address given to memcpy() after some Audio::RawStream calls.

Full logs attached below.

The builds are done on branch-2-9.

Attachments (2)

gdb-he-catalog-fr-ppc.txt (7.3 KB ) - added by dwatteau 2 months ago.
GDB backtrace on ppc32 (big-endian). (The cpu_capabilities.h: No such file or directory. part is system specific and can be ignored.)
tsan-he-catalog-fr-x64.txt (4.3 KB ) - added by dwatteau 2 months ago.
ThreadSanitizer trace (on regular macOS x64) when quitting the preview at the start

Download all attachments as: .zip

Change History (2)

by dwatteau, 2 months ago

Attachment: gdb-he-catalog-fr-ppc.txt added

GDB backtrace on ppc32 (big-endian). (The cpu_capabilities.h: No such file or directory. part is system specific and can be ignored.)

by dwatteau, 2 months ago

Attachment: tsan-he-catalog-fr-x64.txt added

ThreadSanitizer trace (on regular macOS x64) when quitting the preview at the start

Note: See TracTickets for help on using tickets.