On Wed, Jan 7, 2026 at 4:39 PM Pradish <[email protected]> wrote:
>
> we are seeing a Crash due to cross-DLL deallocation of std::string from 
> static V8 library (CRT/heap ownership mismatch)
>
> But this issue was never seen in earlier versions. we have not changed our 
> code since many years.
>
> is our assumption correct ? or is there anything changed in the latest 
> version that we have take care of in our code.
>
> Environment
>
> OS: Windows 11
>
> CPU architecture: x64
>
> Compiler: clang-cl
>
> MSVC toolchain: Visual Studio 2022 (v143)
>
> V8 version / commit: 14.3.127.17
>
> Build system: GN + Ninja
>
> Build type: Static library (v8_monolith.lib)
>
>
>
> args.gn:
> is_component_build = false
>
> is_debug = false
>
> target_cpu = "x64"
>
> use_custom_libcxx = false
>
> v8_monolithic = true
>
> v8_use_external_startup_data = false
>
> is_clang = false
>
> clang_use_chrome_plugins = false
>
> treat_warnings_as_errors = false
>
> v8_enable_test_features=false
>
> v8_enable_fast_torque = false
>
> v8_enable_sandbox = false
>
> v8_enable_pointer_compression = false
>
> v8_enable_backtrace = false
>
> v8_enable_disassembler = false
>
> v8_enable_object_print = false
>
> v8_enable_verify_heap = false
>
> v8_enable_slow_dchecks = false
>
> v8_enable_gdbjit = false
>
> v8_enable_i18n_support = true
>
> v8_monolithic_for_shared_library = true
>
> v8_static_library = true
>
> icu_use_data_file = false
>
> v8_enable_temporal_support = false
>
> use_sysroot = false
>
> symbol_level = 0
>
> strip_debug_info=true
>
> dcheck_always_on = false
>
>
>
> Application:
>
> We use V8 to execute JavaScript, and on Windows the V8 library is statically 
> linked into our own DLL.
> The application was working correctly up to version 14.1.146.11.
> we were originally using V8 as a shared dll up to version  13.0.x, but later 
> we had to switch to using the static V8 library, since shared DLL builds are 
> not officially supported by V8 and we also migrated from MSVC to clang-cl.
>
>
>
> As part of addressing security issues, we upgraded V8 to 14.3.127.17. After 
> this upgrade, we are seeing frequent crashes inside our DLL, and many of the 
> crash stacks point to operations involving std::basic_string.
>
>
>
>
>
> Location:
>     _CONSTEXPR20 ~basic_string() noexcept {
>
>         _Tidy_deallocate();  //crashes here
>
> #if _ITERATOR_DEBUG_LEVEL != 0
>
>         auto&& _Alproxy          = _GET_PROXY_ALLOCATOR(_Alty, _Getal());
>
>         const auto _To_delete    = _Mypair._Myval2._Myproxy;
>
>         _Mypair._Myval2._Myproxy = nullptr;
>
>         _Delete_plain_internal(_Alproxy, _To_delete);
>
> #endif // _ITERATOR_DEBUG_LEVEL != 0
>
>     }
>
>
>  any inputs or pointers will be of great help.
>
> Thank you for looking into this.
>
> regards
> Pradish

Crashes in _Tidy_deallocate, assuming they're not ordinary memory
corruption bugs in your application, suggests different parts of your
program have been linked to different versions of the standard C++
library. Check that V8 and your application are built with the same
compiler and linker flags.

-- 
-- 
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- 
You received this message because you are subscribed to the Google Groups 
"v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion visit 
https://groups.google.com/d/msgid/v8-dev/CAHQurc8iLXwSeX2na3tXt8wbcgv_txeiUHpZKM_3FKdL3GaYuw%40mail.gmail.com.

Reply via email to