ID:2089331
 
BYOND Version:509.1319, 510.1345
Operating System:Linux, Windows 8.1
Web Browser:Chrome 50.0.2661.102
Applies to:Dream Maker
Status: Open

Issue hasn't been assigned a status value.
Descriptive Problem Summary:
DM fails to open my local BS12 project, bringing up a message box saying "Encountered an improper argument"

Numbered Steps to Reproduce Problem:
Open BS12 project as present on my hard drive?

Expected Results: It would work

Actual Results: It did not

Does the problem occur:
Every time? Or how often? Every time
In other games? Unknown
In other user accounts? Yes
On other computers? On other OSes on the same computer, at the very least.

When does the problem NOT occur? When I move specific folders out of the project; specifically, three node modules required by part of our UI generation. Any of the three, if left in node_modules, will break DM. If all three are removed, it works fine.
- Two of the three failing modules have shorter longest paths (<250 chars) than at least one working module (265 chars).
- All three failing modules have less files-per-folder in their largest folder (~300 files for two of them, less for the other) than at least one working module (400 files)

Did the problem NOT occur in any earlier versions? If so, what was the last version that worked? Unknown

Workarounds: None known.

Backtrace from 510.1345 after the message box appeared:
00 00e8ab38 75304061 USER32!NtUserWaitMessage+0xc
01 00e8ab80 75305a02 USER32!DialogBox2+0x13f
02 00e8abb0 75311c07 USER32!InternalDialogBox+0x107
03 00e8ac7c 7531136d USER32!SoftModalMessageBox+0xe2c
04 00e8ade0 7535776b USER32!MessageBoxWorker+0x293
05 00e8ae64 753576cb USER32!MessageBoxTimeoutW+0x6b
06 00e8ae98 7535750b USER32!MessageBoxTimeoutA+0x7b
07 00e8aeb8 753574d8 USER32!MessageBoxExA+0x1b
08 00e8aed4 5c1c7c83 USER32!MessageBoxA+0x18
09 00e8b010 5c1c7b53 mfc120!CWinApp::ShowAppMessageBox+0x129 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\appui1.cpp @ 122] 0a 00e8b028 5c20ecbc mfc120!CWinApp::DoMessageBox+0x12 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\appui1.cpp @ 39] 0b 00e8b244 5c1c6ff6 mfc120!CException::ReportError+0x44 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\except.cpp @ 110] 0c 00e8b260 5c2536d6 mfc120!CWinApp::ProcessWndProcException+0x6f [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\appcore.cpp @ 1037] 0d 00e8c778 5c2538cf mfc120!AfxCallWndProc+0xc2 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\wincore.cpp @ 290] 0e 00e8c798 5c153a36 mfc120!AfxWndProc+0x34 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\wincore.cpp @ 434] 0f 00e8c7d4 752e8e71 mfc120!AfxWndProcBase+0x34 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\afxstate.cpp @ 299]
10 00e8c800 752e90d1 USER32!_InternalCallWinProc+0x2b
11 00e8c894 752ea62a USER32!UserCallWinProcCheckWow+0x18e
12 00e8c908 752fc0b0 USER32!DispatchMessageWorker+0x473
13 00e8c910 5c242d8c USER32!DispatchMessageA+0x10
14 00e8c920 5c257f80 mfc120!AfxInternalPumpMessage+0x3e [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\thrdcore.cpp @ 183] 15 00e8c944 5c1fa745 mfc120!CWnd::RunModalLoop+0xc6 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\wincore.cpp @ 4644] 16 00e8c95c 5c1fa9c8 mfc120!CWnd::CreateRunDlgIndirect+0x3e [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\dlgcore.cpp @ 474] 17 00e8c9b0 00457ecb mfc120!CDialog::DoModal+0x109 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\dlgcore.cpp @ 633] WARNING: Stack unwind information not available. Following frames may be wrong.
18 00e8fcc8 5c266300 dreammaker+0x67ecb
19 00e8fcdc 0049fe54 mfc120!AfxWinMain+0x47 [f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\winmain.cpp @ 37]
1a 00e8fd28 75847c04 dreammaker+0xafe54
1b 00e8fd3c 770fad5f KERNEL32!BaseThreadInitThunk+0x24
1c 00e8fd84 770fad2a ntdll!__RtlUserThreadStart+0x2f
1d 00e8fd94 00000000 ntdll!_RtlUserThreadStart+0x1b


I don't have a full trace from 509.1319, but I do know the offsets into dreammaker; +0x678fa and +0xaf833.

If you need me to do any more testing or need more information, I'm happy to run whatever you need to investigate this.
I have no idea where the </250> on the end of the post came from, it's not in the source.

edit: fixed it
Unfortunately this doesn't give me any info on which function had a bad argument. But the path info is very interesting. What are the three paths?
The three folders I've found break DM if present are:
tgui/node_modules/babel-preset-es2015/
tgui/node_modules/gulp-stylus/
tgui/node_modules/gulp-uglify/


I'll test a bit more and figure out if there's a specific file or folder somewhere within them that breaks it.
Solved. Seems it was a path length issue, though I'm not sure how some modules with long paths worked and some with short didn't. Perhaps a max number of folders?

Either way, I updated npm to a version that stores the modules flat rather than recursively, and DM works fine now.