Jump to content

Actium

Members
  • Posts

    203
  • Joined

  • Last visited

Everything posted by Actium

  1. I've run a bunch of benchmarks that point to the dedicated server performing very poorly under KVM, which I presume winboat relies upon. Since the client and dedicated server presumably share the same code base, I'd be weary that trying to run the DCS client in a VM may affect the performance significantly. If you give it a try, make sure to benchmark it against native performance and do share you results.
  2. @BIGNEWY Any updates on this? The arbitrary code execution vulnerability is still exploitable in both client (CVSS 8.6) and dedicated server (CVSS 8.8) as of right now. It's been exactly 10 months since I've first reported the issue confidentially along with a proof-of-concept exploit (see support ticket #176799). I understand that a proper fix that doesn't break the scripting API is a non-trivial task that will take some time. Until then, a temporary stopgap exploit mitigation should be deployed. It is reckless to leave DCS trivially exploitable. I've suggested a straightforward mitigation more than 3 months ago (ticket #190402) and also posted it in this thread, which I've updated just now to add logging. Please address security vulnerabilities with the urgency they deserve! Feel free to reach out if you need help with that. P.S.: %DCS_INSTALL_DIR%/API/Sim_ControlAPI.html still contains the revoked security option configuration directives. Please update the documentation accordingly.
  3. Thread wasn't moved, so I posted a new bug report in the Game Crash section: @Maverick Su-35S If you happen to have a crashdump, please post it there.
  4. The DCS client and server quit with a "Login session has expired" popup when reconnecting to the master server after the connection had been lost for about half an hour. Said quitting now appears to trigger a delayed segmentation fault. Originally reported here. Full crash dump: dcs.log-20251003-120952.zip Annotated excerpt from dcs.log: # tabbing in and out, everything works prior to computer suspension 2025-10-03 11:15:20.855 INFO DXGUI_WIN_ADAPTER (Main): resize main window to [2560, 1440] 2025-10-03 11:15:22.549 INFO DXGUI_WIN_ADAPTER (Main): resize main window to [0, 0] 2025-10-03 11:16:57.822 INFO DXGUI_WIN_ADAPTER (Main): resize main window to [2560, 1440] 2025-10-03 11:17:02.051 INFO DXGUI_WIN_ADAPTER (Main): resize main window to [0, 0] 2025-10-03 11:21:16.576 INFO DXGUI_WIN_ADAPTER (Main): resize main window to [2560, 1440] 2025-10-03 11:21:17.875 INFO DXGUI_WIN_ADAPTER (Main): resize main window to [0, 0] ... # coming back up from suspension, the session check fails immediately 2025-10-03 12:06:56.534 ERROR ASYNCNET (2808): HTTP request dcs:checksession failed with error 6: Could not resolve hostname 2025-10-03 12:06:56.535 WARNING ASYNCNET (2808): Session check failed: -6 ... # a minute later, DCS decides to terminate, but lets me tab in and out anyway 2025-10-03 12:07:57.966 ERROR ASYNCNET (2808): The session has expired (401). Exiting... 2025-10-03 12:07:57.972 INFO EDCORE (Main): (dDispatcher)enterToState_:5 2025-10-03 12:08:38.747 INFO DXGUI_WIN_ADAPTER (Main): resize main window to [2560, 1440] 2025-10-03 12:08:42.582 INFO DXGUI_WIN_ADAPTER (Main): resize main window to [0, 0] 2025-10-03 12:09:42.972 INFO DXGUI_WIN_ADAPTER (Main): resize main window to [2560, 1440] 2025-10-03 12:09:48.735 INFO APP (Main): application shutdown ... # two minutes later, DCS suddenly SEGFAULTs 2025-10-03 12:09:49.196 WARNING SCENE (8972): Scene was removed with 1 alive objects 2025-10-03 12:09:49.210 INFO WorldPlugIns (Main): Deinitializing plugins... 2025-10-03 12:09:50.441 INFO TERRAIN (Main): lSystem::exit() 2025-10-03 12:09:50.443 INFO TERRAIN (Main): lSystem::CleanScenes() 2025-10-03 12:09:50.443 INFO WORLDGENERAL (Main): TerrainUtility:: updated in parallel: 0, updated in the main thread: 0 2025-10-03 12:09:50.504 INFO INTER (8972): ITerrainGraphicsEntryPoint::close() 2025-10-03 12:09:50.564 INFO INTER (Main): ITerrainEntryPoint::close() 2025-10-03 12:09:51.160 INFO INTER (Main): ITerrainGraphicsEntryPoint::close() 2025-10-03 12:09:51.160 INFO INTER (Main): ITerrainEntryPoint::close() 2025-10-03 12:09:51.161 INFO EDCORE (Main): try to write dump information 2025-10-03 12:09:51.163 WARNING SCENE (8972): Scene was removed with 5 alive objects 2025-10-03 12:09:51.271 INFO EDCORE (Main): # -------------- 20251003-120952 -------------- 2025-10-03 12:09:51.273 INFO EDCORE (Main): DCS/2.9.20.15384 (x86_64; MT; Windows NT 10.0.19045) 2025-10-03 12:09:51.275 INFO EDCORE (Main): C:\Games\DCS World OpenBeta\bin\lua.dll 2025-10-03 12:09:51.277 INFO EDCORE (Main): # C0000005 ACCESS_VIOLATION at 00007ff9994817d0 00:00000000 2025-10-03 12:09:51.279 INFO EDCORE (Main): SymInit: Symbol-SearchPath: 'C:\Games\DCS World OpenBeta\bin;', symOptions: 532, UserName: 'user' 2025-10-03 12:09:51.281 INFO EDCORE (Main): OS-Version: 10.0.19045 () 0x100-0x1 2025-10-03 12:09:51.282 INFO EDCORE (Main): 0x00000000000017d0 (lua): lua_gettop + 0x0 2025-10-03 12:09:51.284 INFO EDCORE (Main): 0x00000000000761eb (edCore): Lua::Config::Config + 0x1B 2025-10-03 12:09:51.286 INFO EDCORE (Main): 0x0000000000a980de (DCS): SW + 0x47BEAE 2025-10-03 12:09:51.286 INFO DX11BACKEND (8972): DX11Renderer::shutdown() 2025-10-03 12:09:51.288 INFO EDCORE (Main): 0x0000000000a97c32 (DCS): SW + 0x47BA02 2025-10-03 12:09:51.290 INFO EDCORE (Main): 0x0000000000a9078b (DCS): SW + 0x47455B 2025-10-03 12:09:51.290 INFO EDCORE (Main): 0x0000000000a45aaf (DCS): SW + 0x42987F 2025-10-03 12:09:51.291 INFO EDCORE (Main): 0x000000000015a56a (Visualizer): smSceneManager::DestroySceneManager + 0xCA 2025-10-03 12:09:51.291 INFO EDCORE (Main): 0x0000000000a66f36 (DCS): SW + 0x44AD06 2025-10-03 12:09:51.291 INFO EDCORE (Main): 0x00000000025b8da1 (DCS): AmdPowerXpressRequestHighPerformance + 0x1097D9D 2025-10-03 12:09:51.291 INFO EDCORE (Main): 0x00000000010dac82 (DCS): SW + 0xABEA52 2025-10-03 12:09:51.291 INFO EDCORE (Main): 0x0000000000017374 (KERNEL32): BaseThreadInitThunk + 0x14 2025-10-03 12:09:51.504 INFO EDCORE (Main): Minidump created.
  5. The dedicated server actually runs hassle-free on vanilla Wine. Unfortunately, the performance is worse than Windows on bare metal. Coincidentally, Wine 10.16 with upstreamed NTSYNC support came out last week. I'm expecting/hoping/praying for that to make a significant performance impact, but I haven't had the time to run new benchmarks.
  6. Lolz. Exact same situation here. No need to apologize. Glad we could clear that up.
  7. My genuine apologies for my curt inquiry if it came across as impolite! I've read the entire thread and was merely curious as to where that information originated from, as I've never read anything about it and – as you rightfully mentioned – ED could improve in terms of documentation and answering technical questions on this forum. I appreciate your efforts to step in!
  8. S_EVENT_SHOT triggers when firing a weapon, not when it impacts. Dunno whether S_EVENT_HIT will trigger when a bomb hits the ground without damaging any units. Also unsure whether your use of addEventHandler() is correct. See here for an exemplary use of S_EVENT_HIT to detect (H)ARMs that hit a ship:
  9. The dedicated server has been multi-threaded for at least a year. However, the main thread is the apparent bottleneck, which uses up considerably more CPU cycles than all other threads combined. On a multi-core CPU, that will result in a low overall CPU usage. See this Process Explorer screenshot (right-click DCS_server.exe -> Properties): Where are you getting that from? AFAICT from logs, bugs/inconsistencies, and its UI, the dedicated server shares a large swath of its codebase with the client. As the latter can host multiplayer missions, re-using that code makes sense. Thus, all hosting-related improvements to the client should end up in the dedicated server immediately. On a side note, the dedicated server even exaggerates code sharing a bit by incorporating the client's interactive error handling, which is unsuitable for a background service like a dedicated server.
  10. @MsKatze If you want a trimmed down version of Windows 11 for hosting DCS, you can try Tiny11. The official price for Windows Server 2025 is truly ludicrous ($1,176 for a ridiculous 16 cores).
  11. Recently noticed that when running DCS_server.exe on Linux via Wine, three threads set civetweb-worker as their custom thread name. Presumably, these threads run the CivetWeb Embedded C/C++ web server to provide the server-side JSON interface of the DCS WebGUI. However, CivetWeb is not credited in Doc/3RD-PARTIES.txt. That would be an infringement of Civetweb License, which requires inclusion of the copyright notice and license text just like the MIT license from which it appears to be derived. I assume this is simply a benign oversight that is easy to rectify. Unfortunately, there's no easy way to show custom thread names under Windows, so above Linux htop screenshot will have to do. The Wine codebase does not rely on civetweb (grep -rin 'civet' turns up nothing), so the origin of the thread names must be the DCS server executable itself. I see no reason why these threads would be named civetweb-worker other than running the civetweb code.
  12. @BIGNEWY Reproduced. This is an actual crash (SEGFAULT / ACCESS_VIOLATION). Please move to Game Crash. Being naive and having suspended my computer while I had the DCS Mission Editor open, I accidentally triggered this crash. Full dump attached: dcs.log-20251003-120952.zip Annotated excerpt from dcs.log: # tabbing in and out, everything works prior to computer suspension 2025-10-03 11:15:20.855 INFO DXGUI_WIN_ADAPTER (Main): resize main window to [2560, 1440] 2025-10-03 11:15:22.549 INFO DXGUI_WIN_ADAPTER (Main): resize main window to [0, 0] 2025-10-03 11:16:57.822 INFO DXGUI_WIN_ADAPTER (Main): resize main window to [2560, 1440] 2025-10-03 11:17:02.051 INFO DXGUI_WIN_ADAPTER (Main): resize main window to [0, 0] 2025-10-03 11:21:16.576 INFO DXGUI_WIN_ADAPTER (Main): resize main window to [2560, 1440] 2025-10-03 11:21:17.875 INFO DXGUI_WIN_ADAPTER (Main): resize main window to [0, 0] ... # coming back up from suspension, the session check fails immediately 2025-10-03 12:06:56.534 ERROR ASYNCNET (2808): HTTP request dcs:checksession failed with error 6: Could not resolve hostname 2025-10-03 12:06:56.535 WARNING ASYNCNET (2808): Session check failed: -6 ... # a minute later, DCS decides to terminate, but lets me tab in and out anyway 2025-10-03 12:07:57.966 ERROR ASYNCNET (2808): The session has expired (401). Exiting... 2025-10-03 12:07:57.972 INFO EDCORE (Main): (dDispatcher)enterToState_:5 2025-10-03 12:08:38.747 INFO DXGUI_WIN_ADAPTER (Main): resize main window to [2560, 1440] 2025-10-03 12:08:42.582 INFO DXGUI_WIN_ADAPTER (Main): resize main window to [0, 0] 2025-10-03 12:09:42.972 INFO DXGUI_WIN_ADAPTER (Main): resize main window to [2560, 1440] 2025-10-03 12:09:48.735 INFO APP (Main): application shutdown ... # two minutes later, DCS suddenly SEGFAULTs 2025-10-03 12:09:49.196 WARNING SCENE (8972): Scene was removed with 1 alive objects 2025-10-03 12:09:49.210 INFO WorldPlugIns (Main): Deinitializing plugins... 2025-10-03 12:09:50.441 INFO TERRAIN (Main): lSystem::exit() 2025-10-03 12:09:50.443 INFO TERRAIN (Main): lSystem::CleanScenes() 2025-10-03 12:09:50.443 INFO WORLDGENERAL (Main): TerrainUtility:: updated in parallel: 0, updated in the main thread: 0 2025-10-03 12:09:50.504 INFO INTER (8972): ITerrainGraphicsEntryPoint::close() 2025-10-03 12:09:50.564 INFO INTER (Main): ITerrainEntryPoint::close() 2025-10-03 12:09:51.160 INFO INTER (Main): ITerrainGraphicsEntryPoint::close() 2025-10-03 12:09:51.160 INFO INTER (Main): ITerrainEntryPoint::close() 2025-10-03 12:09:51.161 INFO EDCORE (Main): try to write dump information 2025-10-03 12:09:51.163 WARNING SCENE (8972): Scene was removed with 5 alive objects 2025-10-03 12:09:51.271 INFO EDCORE (Main): # -------------- 20251003-120952 -------------- 2025-10-03 12:09:51.273 INFO EDCORE (Main): DCS/2.9.20.15384 (x86_64; MT; Windows NT 10.0.19045) 2025-10-03 12:09:51.275 INFO EDCORE (Main): C:\Games\DCS World OpenBeta\bin\lua.dll 2025-10-03 12:09:51.277 INFO EDCORE (Main): # C0000005 ACCESS_VIOLATION at 00007ff9994817d0 00:00000000 2025-10-03 12:09:51.279 INFO EDCORE (Main): SymInit: Symbol-SearchPath: 'C:\Games\DCS World OpenBeta\bin;', symOptions: 532, UserName: 'user' 2025-10-03 12:09:51.281 INFO EDCORE (Main): OS-Version: 10.0.19045 () 0x100-0x1 2025-10-03 12:09:51.282 INFO EDCORE (Main): 0x00000000000017d0 (lua): lua_gettop + 0x0 2025-10-03 12:09:51.284 INFO EDCORE (Main): 0x00000000000761eb (edCore): Lua::Config::Config + 0x1B 2025-10-03 12:09:51.286 INFO EDCORE (Main): 0x0000000000a980de (DCS): SW + 0x47BEAE 2025-10-03 12:09:51.286 INFO DX11BACKEND (8972): DX11Renderer::shutdown() 2025-10-03 12:09:51.288 INFO EDCORE (Main): 0x0000000000a97c32 (DCS): SW + 0x47BA02 2025-10-03 12:09:51.290 INFO EDCORE (Main): 0x0000000000a9078b (DCS): SW + 0x47455B 2025-10-03 12:09:51.290 INFO EDCORE (Main): 0x0000000000a45aaf (DCS): SW + 0x42987F 2025-10-03 12:09:51.291 INFO EDCORE (Main): 0x000000000015a56a (Visualizer): smSceneManager::DestroySceneManager + 0xCA 2025-10-03 12:09:51.291 INFO EDCORE (Main): 0x0000000000a66f36 (DCS): SW + 0x44AD06 2025-10-03 12:09:51.291 INFO EDCORE (Main): 0x00000000025b8da1 (DCS): AmdPowerXpressRequestHighPerformance + 0x1097D9D 2025-10-03 12:09:51.291 INFO EDCORE (Main): 0x00000000010dac82 (DCS): SW + 0xABEA52 2025-10-03 12:09:51.291 INFO EDCORE (Main): 0x0000000000017374 (KERNEL32): BaseThreadInitThunk + 0x14 2025-10-03 12:09:51.504 INFO EDCORE (Main): Minidump created.
  13. Did a quick test (on Windows 10). Newly created, empty mission on Caucasus. Added a ONCE trigger with the SOUND TO ALL action and could open the file chooser dialog:
  14. Does it actually crash or does it quit with a Login session has expired popup message? I've reported the latter more than half a year ago:
  15. The documentation for net.dostring_in() in %DCS_INSTALL_DIR%/API/Sim_ControlAPI.html was updated with 2.9.18.12722. Now, it calls net.dostring_in() obsolete: This is blatantly wrong. Any advanced scripting is dependent on net.dostring_in(). a_do_script() is no substitute whatsoever. Four examples: SRS, Olympus, DCSServerBot, and Lua Consoles require net.dostring_in(). The latter two actually exemplify how both functions are used together. I sincerely hope that this is just a documentation error and not a symptom of a lack of understanding of DCS' scripting engine by the developers. Removing this function would break many applications of Lua scripting that go beyond simple mission scripting. To avoid any misunderstanding, please fix the documentation.
  16. Much appreciated! I does indeed work as of beta 15, at least on Linux with Wine. No reason to assume it wouldn't on Windows. Currently added as a TODO, waiting for the stable release.
  17. Would love for AI to use such advanced tactics. Unfortunately, the AI is currently so inept that it will stall out on full afterburner in BVR engagements.
  18. Not fixed in 2.9.20.15384. @BIGNEWY This core bug has persisted for 3 consecutive versions, so I presume it has flown under the radar.
  19. Not fixed in 2.9.20.15384. @BIGNEWY This core bug has persisted for 3 consecutive versions, so I presume it has flown under the radar.
  20. I appreciate the suggestion. If this does end up in the sim, it should however be in a backwards-compatible manner.
  21. You have two options. For both, you have to open PowerShell. These are just educated guesses, as I don't have DCS installed via Steam, so, unfortunately, I can't check if it works. The first option is to run the two commands I've posted above. They will generate a new registry key that pretends the DCS World OpenBeta Server is installed where you installed DCS World via Steam. That should theoretically get the DCS Updater to search files there before downloading them instead. Alternatively, if it used to work from the old Steam directory on your D: drive, you could create a symlink from the D: drive to the E: drive. That way, if the DCS updater searches in the old location on D: it will be implicitly "forwarded" to the E: drive. Generate the Symlink as follows (note that the parent directories on D: must exist; create them if necessary): mklink /d D:\Steam\steamapps\common\DCSWorld E:\SteamLibrary\steamapps\common\DCSWorld
  22. More informative error messages would certainly help. Same applies to the Error 500 issue. It shouldn't be too difficult to add human-readable error messages to the popup and the dcs.log, so users are not left absolutely clueless as to what is going on. I've even detailed a straightforward way to implement that. Should be feasible in a day's work.
  23. The DCS_updater.exe checks for other install locations within your registry. AFAICT it checks the following registry keys to find other local DCS installations: HKCU\Software\Eagle Dynamics\DCS World OpenBeta\Path HKCU\Software\Eagle Dynamics\DCS World\Path HKCU\Software\Eagle Dynamics\DCS World OpenBeta Server\Path HKCU\Software\Eagle Dynamics\DCS World Server\Path A crude way of getting the updater to find your Steam installation would be to create one of the above registry keys, preferably one that does not yet exist on your system, and to set it to your Steam DCS directory. Haven't tried that, but should theoretically work. Obviously, try at your own risk. Update: Quickest way to do that would be through Windows PowerShell. This will not overwrite any existing registry keys, so should be relatively safe: New-Item -Path "HKCU:\Software\Eagle Dynamics\DCS World OpenBeta Server\" New-Item -Path "HKCU:\Software\Eagle Dynamics\DCS World OpenBeta Server\Path" -Value "E:\SteamLibrary\steamapps\common\DCSWorld"
  24. @BIGNEWY Maybe merge with https://forum.dcs.world/topic/312603-login-session-expired/
  25. I wrote a benchmark script for the dedicated server. Exemplary results.
×
×
  • Create New...