Skip to content

User crash when cloning error marker

Here are the standard questions for the original user to respond to:

Describe the issue as detailed as you can. Below is a list of questions that should be answered in the description (if they apply).

  • Is the problem OpenMW specific or does it also happen in vanilla Morrowind?
  • What is your operating system?
  • What version of OpenMW are you using? If you used a bleeding edge build, state the exact revision used.
  • What version of Morrowind are you using (i.e. retail CD or Steam)? What addons (Tribunal, Bloodmoon) do you have installed? What language is your Morrowind install?
  • Do you use any mods? If so, does the problem also occur in a clean vanilla install without any mods?
  • What are the exact steps to reproduce the problem?
  • What did you expect to happen? What happened instead?
  • Are there any error messages in your openmw.log file? If you're not an OpenMW team member, it's best to upload it.
  • What settings do you use? If you're not an OpenMW team member, it's best to upload your settings.cfg.
  • Where is the in-game location this problem can be observed? Avoid vague statements such as "west of town X". Instead, open the console (` key by default, the key above Tab), click on the problematic object, then use the betacomment (bc) instruction to get useful information about the object that you can copy and paste into the bugreport:

Stack trace:

Click to expand
 	osg.dll!osg::clone<osg::UserDataContainer>(const osg::UserDataContainer * t=0x00000281eb744d70, const osg::CopyOp & copyop={...}) Line 319	C++
 	osg.dll!osg::Object::Object(const osg::Object & obj, const osg::CopyOp & copyop={...}) Line 40	C++
 	osg.dll!osg::Node::Node(const osg::Node & node, const osg::CopyOp & copyop={...}) Line 76	C++
 	osg.dll!osg::Node::clone(const osg::CopyOp & copyop={...}) Line 87	C++
 	osg.dll!osg::clone<osg::Node>(const osg::Node * t, const osg::CopyOp & copyop) Line 319	C++
 	osg.dll!osg::Group::Group(const osg::Group & group, const osg::CopyOp & copyop={...}) Line 40	C++
 	osg.dll!osg::Group::clone(const osg::CopyOp & copyop={...}) Line 38	C++
 	osg.dll!osg::clone<osg::Node>(const osg::Node * t, const osg::CopyOp & copyop) Line 319	C++
 	osg.dll!osg::Group::Group(const osg::Group & group, const osg::CopyOp & copyop={...}) Line 40	C++
 	osg.dll!osg::Group::clone(const osg::CopyOp & copyop={...}) Line 38	C++
 	openmw.exe!Resource::SceneManager::cloneErrorMarker() Line 945	C++
 	openmw.exe!`Resource::SceneManager::getTemplate'::`1'::catch$57() Line 968	C++
 	VCRUNTIME140_1.dll!_CallSettingFrame_LookupContinuationIndex()	Unknown
 	VCRUNTIME140_1.dll!__FrameHandler4::CxxCallCatchBlock(struct _EXCEPTION_RECORD *)	Unknown
 	ntdll.dll!RcConsolidateFrames()	Unknown
>	openmw.exe!Resource::SceneManager::getTemplate(std::basic_string_view<char,std::char_traits<char>> name={...}, bool compile=false) Line 960	C++
 	openmw.exe!MWRender::ObjectPaging::createChunk(float size, const osg::Vec2f & center, bool activeGrid, const osg::Vec3f & viewPoint, bool compile=false, unsigned char lod='\x3') Line 674	C++
 	openmw.exe!MWRender::ObjectPaging::getChunk(float size, const osg::Vec2f & center, unsigned char __formal='\x6', unsigned int lodFlags=196608, bool activeGrid, const osg::Vec3f & viewPoint, bool compile=false) Line 92	C++
 	openmw.exe!Terrain::QuadTreeWorld::loadRenderingNode(Terrain::ViewDataEntry & entry, Terrain::ViewData * vd, float cellWorldSize, const osg::Vec4i & gridbounds, bool compile=181) Line 397	C++
 	openmw.exe!Terrain::QuadTreeWorld::accept(osg::NodeVisitor & nv) Line 490	C++
 	openmw.exe!Terrain::RootNode::accept(osg::NodeVisitor & nv) Line 114	C++
 	osg.dll!osg::Group::traverse(osg::NodeVisitor & nv) Line 61	C++
 	osgUtil.dll!osgUtil::CullVisitor::apply(osg::Group & node) Line 1151	C++
 	osg.dll!osg::Group::accept(osg::NodeVisitor & nv) Line 38	C++
 	osg.dll!osg::Group::traverse(osg::NodeVisitor & nv) Line 61	C++
 	[Inline Frame] openmw.exe!SceneUtil::NodeCallback<SceneUtil::LightManagerCullCallback,SceneUtil::LightManager *,osgUtil::CullVisitor *>::traverse(SceneUtil::LightManager *) Line 37	C++
 	openmw.exe!SceneUtil::LightManagerCullCallback::operator()(SceneUtil::LightManager * node=0x0000027cb54c8680, osgUtil::CullVisitor * cv=0x0000027c9dbf6db0) Line 662	C++
 	openmw.exe!SceneUtil::NodeCallback<SceneUtil::LightManagerCullCallback,SceneUtil::LightManager *,osgUtil::CullVisitor *>::run(osg::Object * object=0x0000027cb54c8680, osg::Object * data) Line 29	C++
 	osgUtil.dll!osgUtil::CullVisitor::apply(osg::Group & node) Line 1151	C++
 	openmw.exe!SceneUtil::LightManager::accept(osg::NodeVisitor & nv) Line 216	C++
 	osg.dll!osg::Group::traverse(osg::NodeVisitor & nv) Line 61	C++
 	openmw.exe!SceneUtil::MWShadowTechnique::cullShadowReceivingScene(osgUtil::CullVisitor * cv=0x0000027c9dbf6db0) Line 3097	C++
 	openmw.exe!SceneUtil::MWShadowTechnique::cull(osgUtil::CullVisitor & cv) Line 1100	C++
 	osgUtil.dll!osgUtil::CullVisitor::apply(osg::Group & node) Line 1151	C++
 	osgShadow.dll!osgShadow::ShadowedScene::accept(osg::NodeVisitor & nv) Line 36	C++
 	osg.dll!osg::Group::traverse(osg::NodeVisitor & nv) Line 61	C++
 	[Inline Frame] openmw.exe!SceneUtil::NodeCallback<SceneUtil::StateSetUpdater,osg::Node *,osg::NodeVisitor *>::traverse(osg::Node *) Line 37	C++
 	openmw.exe!SceneUtil::StateSetUpdater::applyCull(osg::Node * node=0x0000027c9dadc2b0, osgUtil::CullVisitor * cv=0x0000027c9dbf6db0) Line 57	C++
 	openmw.exe!SceneUtil::NodeCallback<SceneUtil::StateSetUpdater,osg::Node *,osg::NodeVisitor *>::run(osg::Object * object=0x0000027c9dadc2b0, osg::Object * data) Line 29	C++
 	osgUtil.dll!osgUtil::CullVisitor::apply(osg::Group & node) Line 1151	C++
 	osg.dll!osg::Group::accept(osg::NodeVisitor & nv) Line 38	C++
 	osg.dll!osg::Group::traverse(osg::NodeVisitor & nv) Line 61	C++
 	[Inline Frame] openmw.exe!SceneUtil::NodeCallback<SceneUtil::StateSetUpdater,osg::Node *,osg::NodeVisitor *>::traverse(osg::Node *) Line 37	C++
 	openmw.exe!SceneUtil::StateSetUpdater::applyCull(osg::Node * node=0x0000027cc7ff0c60, osgUtil::CullVisitor * cv=0x0000027c9dbf6db0) Line 57	C++
 	openmw.exe!SceneUtil::NodeCallback<SceneUtil::StateSetUpdater,osg::Node *,osg::NodeVisitor *>::run(osg::Object * object=0x0000027cc7ff0c60, osg::Object * data) Line 29	C++
 	osgUtil.dll!osgUtil::CullVisitor::apply(osg::Group & node) Line 1151	C++
 	osg.dll!osg::Group::accept(osg::NodeVisitor & nv) Line 38	C++
 	osg.dll!osg::Group::traverse(osg::NodeVisitor & nv) Line 61	C++
 	[Inline Frame] openmw.exe!SceneUtil::NodeCallback<MWRender::PingPongCull,osg::Node *,osgUtil::CullVisitor *>::traverse(osg::Node *) Line 37	C++
 	openmw.exe!MWRender::PingPongCull::operator()(osg::Node * node=0x0000027c9dbe6720, osgUtil::CullVisitor * cv=0x0000027c9dbf6db0) Line 82	C++
 	openmw.exe!SceneUtil::NodeCallback<MWRender::PingPongCull,osg::Node *,osgUtil::CullVisitor *>::run(osg::Object * object=0x0000027c9dbe6720, osg::Object * data) Line 29	C++
 	osgUtil.dll!osgUtil::SceneView::cullStage(const osg::Matrixd & projection, const osg::Matrixd & modelview, osgUtil::CullVisitor * cullVisitor=0x0000027c9dbf6db0, osgUtil::StateGraph * rendergraph=0x0000027c9f6b06c0, osgUtil::RenderStage * renderStage=0x0000027c9dbf6b40, osg::Viewport * viewport=0x0000027c9db7b450) Line 892	C++
 	osgUtil.dll!osgUtil::SceneView::cull() Line 760	C++
 	osgViewer.dll!osgViewer::Renderer::cull() Line 685	C++
 	osgViewer.dll!osgViewer::ViewerBase::renderingTraversals() Line 871	C++
 	openmw.exe!OMW::Engine::frame(unsigned int frameNumber=3807, float frametime=2.33549763e-38) Line 356	C++
 	openmw.exe!OMW::Engine::go() Line 1034	C++
 	openmw.exe!runApplication(int argc=1, char * * argv=0x0000027c98b291c0) Line 236	C++
 	openmw.exe!Debug::wrapApplication(int(*)(int, char * *) innerApplication=0x00007ff6b21464d2, int argc=1, char * * argv=0x0000027c98b291c0, std::basic_string_view<char,std::char_traits<char>> appName={...}) Line 457	C++
 	openmw.exe!main(int argc, char * * argv) Line 249	C++
 	[Inline Frame] openmw.exe!invoke_main() Line 78	C++
 	openmw.exe!__scrt_common_main_seh() Line 288	C++
 	kernel32.dll!BaseThreadInitThunk()	Unknown
 	ntdll.dll!RtlUserThreadStart()	Unknown

Another thread seems to be loading something else, so maybe that's related?

Click to expand
NtReadFile()
ReadFile()
Platform::File::read(Platform::File::Handle, void *, unsigned __int64)
Files::ConstrainedFileStreamBuf::underflow()
std::basic_streambuf<char,std::char_traits<char>>::uflow()
std::basic_streambuf<char,std::char_traits<char>>::xsgetn(char *, __int64)
[Inline Frame] std::basic_streambuf<char,std::char_traits<char>>::sgetn(char *, __int64)
std::basic_istream<char,std::char_traits<char>>::read(char *, __int64)
ReadDDSFile(std::basic_istream<char,std::char_traits<char>> &, bool)
ReaderWriterDDS::readImage(std::basic_istream<char,std::char_traits<char>> &, const osgDB::Options *)
Resource::ImageManager::getImage(std::basic_string_view<char,std::char_traits<char>>, bool)
NifOsg::LoaderImpl::getTextureImage(std::basic_string_view<char,std::char_traits<char>>)
[Inline Frame] NifOsg::LoaderImpl::handleSourceTexture(const Nif::NiSourceTexture *)
[Inline Frame] NifOsg::LoaderImpl::attachNiSourceTexture(const std::string &, const Nif::NiSourceTexture *, bool, bool, unsigned int, osg::StateSet *, std::vector<unsigned int,std::allocator<unsigned int>> &)
NifOsg::LoaderImpl::handleTextureProperty(const Nif::NiTexturingProperty *, const std::string &, osg::StateSet *, SceneUtil::CompositeStateSetUpdater *, std::vector<unsigned int,std::allocator<unsigned int>> &, int)
NifOsg::LoaderImpl::handleProperty(const Nif::NiProperty *, osg::Node *, SceneUtil::CompositeStateSetUpdater *, std::vector<unsigned int,std::allocator<unsigned int>> &, int, bool)
NifOsg::LoaderImpl::applyNodeProperties(const Nif::NiAVObject *, osg::Node *, SceneUtil::CompositeStateSetUpdater *, std::vector<unsigned int,std::allocator<unsigned int>> &, int)
NifOsg::LoaderImpl::handleNode(const Nif::NiAVObject *, const Nif::Parent *, osg::Group *, NifOsg::LoaderImpl::HandleNodeArgs)
NifOsg::LoaderImpl::handleNode(const Nif::NiAVObject *, const Nif::Parent *, osg::Group *, NifOsg::LoaderImpl::HandleNodeArgs)
NifOsg::LoaderImpl::load(Nif::FileView)
NifOsg::Loader::load(Nif::FileView, Resource::ImageManager *, Resource::BgsmFileManager *)
Resource::load(VFS::Path::NormalizedView, const VFS::Manager *, Resource::ImageManager *, Resource::NifFileManager *, Resource::BgsmFileManager *)
Resource::SceneManager::getTemplate(std::basic_string_view<char,std::char_traits<char>>, bool)
MWRender::ObjectPaging::createChunk(float, const osg::Vec2f &, bool, const osg::Vec3f &, bool, unsigned char)
MWRender::ObjectPaging::getChunk(float, const osg::Vec2f &, unsigned char, unsigned int, bool, const osg::Vec3f &, bool)
Terrain::QuadTreeWorld::loadRenderingNode(Terrain::ViewDataEntry &, Terrain::ViewData *, float, const osg::Vec4i &, bool)
Terrain::QuadTreeWorld::preload(Terrain::View *, const osg::Vec3f &, const osg::Vec4i &, std::atomic<bool> &, Loading::Reporter &)
MWWorld::TerrainPreloadItem::doWork()
SceneUtil::WorkThread::run()
[Inline Frame] SceneUtil::WorkThread::{ctor}::__l1::<lambda_5_>::operator()()
[Inline Frame] std::invoke(SceneUtil::WorkThread::{ctor}::__l1::<lambda_5_> &&)
std::thread::_Invoke<std::tuple<`SceneUtil::WorkThread::WorkThread'::`1'::<lambda_5_>>,0>(void *)
thread_start<unsigned int (__cdecl*)(void *),1>()
BaseThreadInitThunk()
RtlUserThreadStart()

The exception data:

Unhandled exception thrown: read access violation. t->**** was 0xFFFFFFFFFFFFFFE7.