ASSERT(item.defined()) in 'monster.cc' at line 602 failed. Version: Dungeon Crawl Stone Soup 0.35-a0-751-g170ea3cddb Platform: unix Bits: 64 Game mode: normal Tiles: online Seed: 17914020386594113522, deterministic pregen: 1 Command line: /usr/games/crawl-git-170ea3cddb -name knorpule3000 -rc /dgldir/rcfiles/crawl-git/knorpule3000.rc -macro /dgldir/rcfiles/crawl-git/knorpule3000.macro -morgue /dgldir/morgue/knorpule3000/ -webtiles-socket /crawl-master/webserver/sockets/knorpule3000:2026-07-23.21:10:22.sock -await-connection RC options: restart_after_game = false Crash caused by signal #6: Aborted Obtained 29 stack frames. /usr/games/crawl-git-170ea3cddb(_Z17write_stack_traceP8_IO_FILE+0x3f) [0x60215ac7a89f]: write_stack_trace(_IO_FILE*) /usr/games/crawl-git-170ea3cddb(_Z13do_crash_dumpv+0x43a) [0x60215ac88b1a]: do_crash_dump() /usr/games/crawl-git-170ea3cddb(_Z20crash_signal_handleri+0x1fa) [0x60215ac7ad9a]: crash_signal_handler(int) /lib/x86_64-linux-gnu/libc.so.6(+0x42910) [0x7d118b442910]: /lib/x86_64-linux-gnu/libc.so.6(pthread_kill+0x11b) [0x7d118b49999b]: /lib/x86_64-linux-gnu/libc.so.6(raise+0x16) [0x7d118b442866]: /usr/games/crawl-git-170ea3cddb(+0x517eed) [0x60215ac87eed]: /usr/games/crawl-git-170ea3cddb(_Z12AssertFailedPKcS0_iS0_z+0x1c7) [0x60215ac883f7]: AssertFailed(char const*, char const*, int, char const*, ...) /usr/games/crawl-git-170ea3cddb(+0x98166e) [0x60215b0f166e]: /usr/games/crawl-git-170ea3cddb(_Z19find_okay_unrandarthhibbP7monster+0x2cb) [0x60215ac092eb]: find_okay_unrandart(unsigned char, unsigned char, int, bool, bool, monster*) /usr/games/crawl-git-170ea3cddb(+0x804db6) [0x60215af74db6]: /usr/games/crawl-git-170ea3cddb(+0x804f2b) [0x60215af74f2b]: /usr/games/crawl-git-170ea3cddb(_Z5itemsb17object_class_typeiiiibNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPK14CrawlHashTableP7monster+0x844) [0x60215af76b24]: items(bool, object_class_type, int, int, int, int, bool, std::__cxx11::basic_string, std::allocator >, CrawlHashTable const*, monster*) /usr/games/crawl-git-170ea3cddb(+0x9071bb) [0x60215b0771bb]: /usr/games/crawl-git-170ea3cddb(_Z22give_apostle_equipmentP7monster+0x5ef) [0x60215b07973f]: give_apostle_equipment(monster*) /usr/games/crawl-git-170ea3cddb(+0x93a17a) [0x60215b0aa17a]: /usr/games/crawl-git-170ea3cddb(_Z13place_monster9mgen_databb+0x274) [0x60215b0ac344]: place_monster(mgen_data, bool, bool) /usr/games/crawl-git-170ea3cddb(_Z10mons_place9mgen_data+0x1e9) [0x60215b0ad129]: mons_place(mgen_data) /usr/games/crawl-git-170ea3cddb(_Z14create_monster9mgen_datab+0x32c) [0x60215b0ae34c]: create_monster(mgen_data, bool) /usr/games/crawl-git-170ea3cddb(_Z32maybe_generate_apostle_challengev+0x6ea) [0x60215ade75ba]: maybe_generate_apostle_challenge() /usr/games/crawl-git-170ea3cddb(_Z15handle_god_timei+0x39e) [0x60215b1f332e]: handle_god_time(int) /usr/games/crawl-git-170ea3cddb(_Z11handle_timev+0xfd) [0x60215b35af9d]: handle_time() /usr/games/crawl-git-170ea3cddb(_Z12world_reactsv+0x293) [0x60215b458a23]: world_reacts() /usr/games/crawl-git-170ea3cddb(+0xceb327) [0x60215b45b327]: /usr/games/crawl-git-170ea3cddb(+0xcebc9d) [0x60215b45bc9d]: /usr/games/crawl-git-170ea3cddb(main+0x1f7) [0x60215abac427]: /lib/x86_64-linux-gnu/libc.so.6(+0x280d0) [0x7d118b4280d0]: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x89) [0x7d118b428189]: /usr/games/crawl-git-170ea3cddb(_start+0x25) [0x60215abacf15]: Trying to run gdb. GNU gdb (Ubuntu 14.0.50.20230907-0ubuntu1) 14.0.50.20230907-git Copyright (C) 2023 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: . Find the GDB manual and other documentation resources online at: . For help, type "help". Type "apropos word" to search for commands related to "word". [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". 0x00007d118b50fbf7 in __GI___wait4 (pid=2976344, stat_loc=0x0, options=0, usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:30 #0 0x00007d118b50fbf7 in __GI___wait4 (pid=2976344, stat_loc=0x0, options=0, usage=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:30 sc_ret = -512 sc_ret = #1 0x000060215ac7af6c in call_gdb (file=0x7d118b5ff6c0 <_IO_2_1_stderr_>) at crash.cc:434 gdb = attach_cmd = "attach 2973539\000\000\000\000\000" #2 0x000060215ac88b38 in do_crash_dump () at dbg-asrt.cc:682 t = 1784846101 dir = "/dgldir/morgue/knorpule3000/" name = "/dgldir/morgue/knorpule3000/crash-knorpule3000-20260723-223501.txt", '\000' signal_info = "Crash caused by signal #6: Aborted" cause_msg = "ASSERT(item.defined()) in 'monster.cc' at line 602 failed." file = 0x7d118b5ff6c0 <_IO_2_1_stderr_> #3 0x000060215ac7ad9a in crash_signal_handler (sig_num=6) at crash.cc:195 No locals. #4 No locals. #5 __pthread_kill_implementation (no_tid=0, signo=6, threadid=) at ./nptl/pthread_kill.c:44 tid = ret = 0 pd = old_mask = {__val = {602}} ret = pd = old_mask = ret = tid = ret = resultvar = resultvar = __arg3 = __arg2 = __arg1 = _a3 = _a2 = _a1 = __futex = resultvar = __arg3 = __arg2 = __arg1 = _a3 = _a2 = _a1 = __futex = __private = __oldval = #6 __pthread_kill_internal (signo=6, threadid=) at ./nptl/pthread_kill.c:78 No locals. #7 __GI___pthread_kill (threadid=, signo=signo@entry=6) at ./nptl/pthread_kill.c:89 No locals. #8 0x00007d118b442866 in __GI_raise (sig=6) at ../sysdeps/posix/raise.c:26 ret = #9 0x000060215ac87eed in _BreakStrToDebugger (mesg=mesg@entry=0x7ffed7316d70 "ASSERT(item.defined()) in 'monster.cc' at line 602 failed.", assert=true) at dbg-asrt.cc:820 No locals. #10 0x000060215ac883f7 in AssertFailed (expr=expr@entry=0x60215b4a0c0c "item.defined()", file=file@entry=0x60215b4bba72 "monster.cc", line=line@entry=602, text=text@entry=0x0) at dbg-asrt.cc:861 mesg = "ASSERT(item.defined()) in 'monster.cc' at line 602 failed.\000\000\002\000\000\000\360s1\327\376\177\000\000\354\261I[!`\000\000\001\200\255\373\376\177\000\000\300u1\327\376\177\000\000\002\000\000\000\002\000\000\000ro1\327\376\177\000\000p\275E\213\021}\000\000\360s1\327\376\177\000\000\000\000\000\000\002", '\000' , "\002\000\000\000\002", '\000' , "\002\000\000\000\002\000\000\000\030\000\000\0000\000\000\000\300u1\327\376\177\000\000\360t1\327\376\177\000\000\002\000\000\000\002\000\000\000"... args = {{gp_offset = 0, fp_offset = 0, overflow_arg_area = 0x7ffed7316d70, reg_save_area = 0x400}} fileName = #11 0x000060215b0f166e in monster::could_wield (this=this@entry=0x60215ba99c58 , item=...) at monster.cc:602 No locals. #12 0x000060215ac092eb in _unrand_is_compatible (mons=, acquirement=, atype=, aclass=OBJ_WEAPONS, unrand=...) at artefact.cc:1797 required_item = {base_type = OBJ_WEAPONS, sub_type = 10 '\n', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, tithe_state = 0}, {plus2 = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 0 '\000', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }} unrand_item = {base_type = OBJ_WEAPONS, sub_type = 36 '$', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, tithe_state = 0}, {plus2 = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 0 '\000', quantity = 0, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }} required_item = unrand_item = #13 find_okay_unrandart (aclass=0 '\000', atype=10 '\n', item_level=350, in_abyss=false, acquirement=acquirement@entry=false, mons=0x60215ba99c58 ) at artefact.cc:1862 index = 181 entry = 0x60215b7c9b60 status = weight = i = 1 seen_weight = 0 chosen_unrand_idx = -1 #14 0x000060215af74db6 in _try_make_item_unrand (item=..., force_type=@0x7ffed731784c: 10, item_level=, item_level@entry=350, agent=agent@entry=-1, acquirement=acquirement@entry=false, mons=mons@entry=0x60215ba99c58 ) at makeitem.cc:175 include_abyssed = idx = #15 0x000060215af74f2b in _try_make_weapon_artefact (item=..., force_type=, force_type@entry=10, item_level=item_level@entry=350, force_randart=force_randart@entry=false, agent=agent@entry=-1, acquirement=acquirement@entry=false, mons=0x60215ba99c58 ) at makeitem.cc:214 old_ego = 0 #16 0x000060215af76b24 in _generate_weapon_item (mons=0x60215ba99c58 , acquirement=false, agent=-1, item_level=350, force_type=10, allow_uniques=true, item=...) at makeitem.cc:472 force_good = forced_ego = no_brand = force_good = forced_ego = no_brand = ego = i = #17 items (allow_uniques=allow_uniques@entry=true, force_class=force_class@entry=OBJ_WEAPONS, force_type=, force_type@entry=10, item_level=, item_level@entry=350, force_ego=force_ego@entry=0, agent=agent@entry=-1, acquirement=false, custom_name="", fixed_props=0x0, mons=0x60215ba99c58 ) at makeitem.cc:2131 item_rng = {current = {state_ = 15510384551039880166, inc_ = 4687122857396146343, count_ = 2}, previous = 0x7ffed7317e70, previous_main = rng::SUB_GENERATOR} p = 134 item = @0x60215ba5f3c8: {base_type = OBJ_WEAPONS, sub_type = 10 '\n', {plus = 0, mon_type = MONS_PROGRAM_BUG, skill = SK_FIGHTING, charges = 0, tithe_state = 0}, {plus2 = 0, skill_points = 0, stash_freshness = 0}, {special = 0, unrand_idx = 0, subtype_rnd = 0, brand = 0, freshness = 0}, rnd = 0 '\000', quantity = 1, flags = 0, pos = {x = 0, y = 0}, link = 27000, slot = 0, orig_place = {branch = BRANCH_DUNGEON, depth = -1}, orig_monnum = 0, inscription = "", props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 0 elements, }} force_good = #18 0x000060215b0771bb in make_item_for_monster (mons=mons@entry=0x60215ba99c58 , base=base@entry=OBJ_WEAPONS, subtype=subtype@entry=10, level=350, allow_uniques=allow_uniques@entry=1, flags=0) at mon-gear.cc:1759 bp = thing_created = #19 0x000060215b07973f in give_apostle_equipment (apostle=0x60215ba99c58 ) at mon-gear.cc:2651 pow = 44 #20 0x000060215b088469 in give_item (mons=, level_number=16, mons_summoned=false) at mon-gear.cc:2507 No locals. #21 0x000060215b0aa17a in _place_monster_aux (mg=..., leader=leader@entry=0x0, place=..., force_pos=force_pos@entry=false, dont_place=dont_place@entry=false) at mon-place.cc:1249 save_speedinc = fpos = {x = 50, y = 19} m_ent = mon = 0x60215ba99c58 montype = needs_patrol = blame_prefix = #22 0x000060215b0ac344 in place_monster (mg=..., force_pos=force_pos@entry=false, dont_place=dont_place@entry=false) at mon-place.cc:746 monster_rng = {current = {state_ = 4225801100852764699, inc_ = 212280179743395455, count_ = 40}, previous = 0x0, previous_main = rng::GAMEPLAY} mon_count = tries = allow_ood = want_band = false place = {branch = BRANCH_ELF, depth = 2} chose_ood_monster = false create_band = band_size = 1 leader = false band_monsters = {MONS_ORC_APOSTLE, MONS_LEOPARD_GECKO } band = mon = priest = band_template = {cls = MONS_LEOPARD_GECKO, behaviour = BEH_SEEK, summoner = 0x200000002, summon_duration = 2, summon_type = 2, pos = {x = 2, y = 2}, range_preferred = 2, range_max = 2, range_min = 2, foe = 2, flags = {<_enum_bitfield_exponent_base<-1, false>> = {}, flags = 2}, god = GOD_SHINING_ONE, base_type = MONS_LEOPARD_GECKO, colour = 2, proximity = PROX_AWAY_FROM_PLAYER, place = {branch = BRANCH_ORC, depth = 2}, hd = 2, hp = 2, exp = 2, extra_flags = {<_enum_bitfield_exponent_base<-1, false>> = {}, flags = 8589934594}, mname = , non_actor_summoner = , initial_shifter = MONS_QUOKKA, map_mask = 0, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 105696428587072 elements, }, xp_tracking = (unknown: 0x5eac0df0), announce_type = 24609} current_band = #23 0x000060215b0ad129 in mons_place (mg=...) at mon-place.cc:2981 creation = #24 0x000060215b0ae34c in create_monster (mg=..., fail_msg=fail_msg@entry=true) at mon-place.cc:3234 montype = summd = 0x0 #25 0x000060215ade75ba in _generate_random_apostle (pos=..., band_pow=, pow=) at god-companions.cc:461 mg = {cls = MONS_ORC_APOSTLE, behaviour = BEH_HOSTILE, summoner = 0x0, summon_duration = 0, summon_type = 0, pos = {x = 49, y = 20}, range_preferred = 2, range_max = 0, range_min = -1, foe = 27001, flags = {<_enum_bitfield_exponent_base<-1, false>> = {}, flags = 9}, god = GOD_NO_GOD, base_type = MONS_NO_MONSTER, colour = -1, proximity = PROX_ANYWHERE, place = {branch = BRANCH_ELF, depth = 2}, hd = 0, hp = 0, exp = 0, extra_flags = {<_enum_bitfield_exponent_base<-1, false>> = {}, flags = 0}, mname = "", non_actor_summoner = "", initial_shifter = RANDOM_MONSTER, map_mask = 0, props = {, std::allocator >, CrawlStoreValue, std::less, std::allocator > >, std::allocator, std::allocator > const, CrawlStoreValue> > >> = std::map with 3 elements = {["apostle_band_power"] = {type = SV_INT, flags = 0 '\000', val = {boolean = 35, byte = 35 '#', _short = 35, _int = 35, _float = 4.90454463e-44, _int64 = 35, ptr = 0x23}}, ["apostle_power"] = {type = SV_INT, flags = 0 '\000', val = {boolean = 44, byte = 44 ',', _short = 44, _int = 44, _float = 6.16571324e-44, _int64 = 44, ptr = 0x2c}}, ["apostle_type"] = {type = SV_INT, flags = 0 '\000', val = {boolean = true, byte = 1 '\001', _short = 1, _int = 1, _float = 1.40129846e-45, _int64 = 1, ptr = 0x1}}}, }, xp_tracking = XP_NON_VAULT, announce_type = SC_NONE} type = mg = type = #26 _try_generate_apostle_challenge (band_pow=, pow=) at god-companions.cc:475 pos = apostle = challenge_msg = "\204\300u\017Jc\004\223H\215\004@D9\\\305\020t\030I\203\302\001I\203\372\016uָ\016\000\000\000[]\303f\017\037D\000\000D\211\320[]\303f\220\363\017\036\372\203\377\rw\037Hc\377H\215\005\215\232\234\000Hc\004\270H\215\024@H\215\005\376\254\221\000H\213D\320\b\303PHc\317A\271\016\000\000\000E1\300H\215\025\f\024g\000\276\a\t\000\000H\215=b\314^\0001\300豔\334\377\220\363\017\036\372\203\377\rw8Hc\377H\215\005=\232\234\000H\215\r\366\270\232\000Hc\004\270H\215\024@H\215\005\247\254\221\000H\215\024\320HcB\020Hi\300\270\000\000\000\213D\001\020\017\257B\024\303PH", ... pos = apostle = challenge_msg = mi = #27 maybe_generate_apostle_challenge () at god-companions.cc:584 pow_cap = base_pow = band_pow = #28 0x000060215b1f332e in handle_god_time () at religion.cc:4205 delay = sacrifice_count = #29 0x000060215b35af9d in handle_time () at timed-effects.cc:475 time_delta = i = 5 base_time = old_time = #30 0x000060215b458a23 in world_reacts () at main.cc:2660 No locals. #31 0x000060215b45b327 in _input () at main.cc:1210 time_is_frozen = false player_disabled = {was_disabled = false} #32 0x000060215b45bc9d in _launch_game () at main.cc:497 game_start = ccon = {cstate = false} #33 0x000060215abac427 in _launch_game_loop () at main.cc:398 game_ended = false game_ended = ge = fe = #34 main (argc=12, argv=0x7ffed7318d28) at main.cc:344 echo = {prev_state = {value = maybe_bool::mbool_t::maybe, static maybe =