electron / electron

:electron: Build cross-platform desktop apps with JavaScript, HTML, and CSS

Home Page:https://electronjs.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Bug]: Fatal Error: 0xc06d007e / 0x00000000 crash on Electron v16.2.3

oalfroukh opened this issue · comments

Preflight Checklist

Electron Version

16.2.3

What operating system are you using?

Windows

Operating System Version

Windows 6.3.9600

What arch are you using?

x64

Last Known Working Electron version

9.4.3

Expected Behavior

Electron apps shouldn't crash on Windows 6.3.9600

Actual Behavior

Our app is now in production with Electron v16.2.3, we see there are a lot of crashes on sentry (30K crash on 10 days), I know Electron 16.2.3 is not a supported version, could you please check which method or practice will use this track trace or native electron code? any help is appreciated, I'll attach Sentry stack traces,

Thanks in advance!

Testcase Gist URL

No response

Additional Information

0xc06d007e / 0x00000000
Fatal Error: 0xc06d007e / 0x00000000
==============================
RaiseException@16
==============================
__delayLoadHelper2
(delayhlp.cpp:301)
==============================
RtlUnwind@16
==============================
(owning_audio_manager_accessor.cc:133)
}  // namespace
OwningAudioManagerAccessor::OwningAudioManagerAccessor(
    AudioManagerFactoryCallback audio_manager_factory_cb)
===>    : audio_manager_factory_cb_(std::move(audio_manager_factory_cb)) {
  DCHECK(audio_manager_factory_cb_);
}
OwningAudioManagerAccessor::~OwningAudioManagerAccessor() {
  DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
==============================
(unique_ptr.h:725)
inline _LIBCPP_INLINE_VISIBILITY
typename __unique_if<_Tp>::__unique_single
make_unique(_Args&&... __args)
{
===>    return unique_ptr<_Tp>(new _Tp(_VSTD::forward<_Args>(__args)...));
}
template<class _Tp>
inline _LIBCPP_INLINE_VISIBILITY
typename __unique_if<_Tp>::__unique_array_unknown_bound
==============================
audio::CreateStandaloneService
(service_factory.cc:28)
}
std::unique_ptr<Service> CreateStandaloneService(
    mojo::PendingReceiver<mojom::AudioService> receiver) {
===>  return std::make_unique<Service>(
      std::make_unique<audio::OwningAudioManagerAccessor>(
          base::BindOnce(&media::AudioManager::Create)),
      /*enable_remote_client_support=*/true, std::move(receiver));
}
==============================
(services.cc:206)
        ::SetPriorityClass(::GetCurrentProcess(), ABOVE_NORMAL_PRIORITY_CLASS);
    DCHECK(success);
  }
#endif
===>  return audio::CreateStandaloneService(std::move(receiver));
}
#if BUILDFLAG(GOOGLE_CHROME_BRANDING) && BUILDFLAG(IS_CHROMEOS_ASH)
auto RunShapeDetectionService(
    mojo::PendingReceiver<shape_detection::mojom::ShapeDetectionService>
==============================
(service_factory.h:148)
  static std::unique_ptr<InstanceHolderBase> RunConstructor(
      Func fn,
      GenericPendingReceiver receiver) {
    using Interface = typename internal::ServiceFactoryTraits<Func>::Interface;
===>    auto impl = fn(receiver.As<Interface>());
    if (!impl)
      return nullptr;
    return std::make_unique<InstanceHolder<Interface>>(std::move(impl));
  }
==============================
(bind_internal.h:404)
  static constexpr bool is_callback = false;
  template <typename Function, typename... RunArgs>
  static R Invoke(Function&& function, RunArgs&&... args) {
===>    return std::forward<Function>(function)(std::forward<RunArgs>(args)...);
  }
};
#if defined(OS_WIN) && !defined(ARCH_CPU_64_BITS)
==============================
(bind_internal.h:648)
struct InvokeHelper<false, ReturnType> {
  template <typename Functor, typename... RunArgs>
  static inline ReturnType MakeItSo(Functor&& functor, RunArgs&&... args) {
    using Traits = MakeFunctorTraits<Functor>;
===>    return Traits::Invoke(std::forward<Functor>(functor),
                          std::forward<RunArgs>(args)...);
  }
};
template <typename ReturnType>
==============================
(bind_internal.h:721)
    static constexpr bool is_weak_call =
        IsWeakMethod<is_method,
                     std::tuple_element_t<indices, DecayedArgsTuple>...>();
===>    return InvokeHelper<is_weak_call, R>::MakeItSo(
        std::forward<Functor>(functor),
        Unwrap(std::get<indices>(std::forward<BoundArgsTuple>(bound)))...,
        std::forward<UnboundArgs>(unbound_args)...);
  }
};

Electron 16 is not supported