Jump to content

D Q

Members
  • Posts

    28
  • Joined

  • Last visited

  • Donations

    0.00 GBP 

Posts posted by D Q

  1. My TBC server crashed under following conditions:

    • log on as a warrior
    • add two bots (won't crash if I don't add bots)
      • one priest, one mage
    • charge into 2+ creatures
    • server will crash in a second or two.

    My build is based on:
     

    commit ffcd98e4d8bfb565c72e03c724fa99bc88a0eb5a (HEAD -> master, tag: v22.03.45, origin/master, origin/HEAD)
    Author: Antz <billy1arm@users.noreply.github.com>
    Date:   Wed Nov 8 22:37:51 2023 +0000
    
        Fix Gentoo build of openSSL3.x. Thanks to @Shaorin for pointing

    I can reproduce the crash very consistently.

    Console:

    Setting lesser delay 0 -> 100
    Correct --- AI Tick ---
    Correct T:aoe
    Correct T:enemy too close for spell
    Correct T:shadow word: pain on attacker
    Correct PUSH:say::aoe - 99.000000 (trigger)
    Correct PUSH:fade - 50.000000 (trigger)
    Correct PUSH:flee - 49.000000 (trigger)
    Correct PUSH:shadow word: pain on attacker - 11.000000 (trigger)
    Correct A:say::aoe - PREREQ
    munmap_chunk(): invalid pointer
    Aborted (core dumped)

    world-server.log doesn't print anything after startup.

    For weird reasons, the coredump was not generated. I will 
    But I have the crash log.

    _home_mangos_mangos_one_bin_mangosd.1002.crash

  2. Hmm... Maybe I am looking at the wrong path, but this doesn't look(read) right.
    bag space has to be smaller than 80? possible target is empty?
     

    bool LootAvailableTrigger::IsActive()
    {
        return AI_VALUE(bool, "has available loot") && AI_VALUE(uint8, "bag space") < 80 &&
                (AI_VALUE2(float, "distance", "loot target") <= INTERACTION_DISTANCE || AI_VALUE(list<ObjectGuid>, "possible targets").empty());
    }

     

  3. I would like to ask the bots to collect nearby quest items that normally requires an "open"/right-click action, followed by casting bar.

    I tried to follow ike3's doc, but it did not work.
    https://ike3.github.io/mangosbot-docs/doc/playerbot/Looting.html

    I also traced the code briefly, and looks like there's some issue to get the game object to the bot's looting list, even though I tried right clicking and cancel etc.

     

    Any idea/comment is much appreciated. I would also love to learn how the code work around this area too.

    Thanks

  4. Anyway, I got it for you from my server.

    (gdb) thread apply all bt
    
    Thread 6 (Thread 0x7f77cb2a4640 (LWP 80744)):
    #0  0x00007f77cc5337f8 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=0x7f77cb2a3dd0, rem=0x0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:78
    #1  0x00007f77cc538677 in __GI___nanosleep (req=<optimized out>, rem=<optimized out>) at ../sysdeps/unix/sysv/linux/nanosleep.c:25
    #2  0x00005596168aaeef in ACE_Based::Thread::Sleep(unsigned long) ()
    #3  0x00005596168a185a in SqlDelayThread::run() ()
    #4  0x00005596168aaa5d in ACE_Based::Thread::ThreadTask(void*) ()
    #5  0x00007f77cc4e2ac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
    #6  0x00007f77cc574660 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
    
    Thread 5 (Thread 0x7f77bbfff640 (LWP 80747)):
    #0  __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x559619075af0) at ./nptl/futex-internal.c:57
    #1  __futex_abstimed_wait_common (cancel=true, private=0, abstime=0x0, clockid=0, expected=0, futex_word=0x559619075af0) at ./nptl/futex-internal.c:87
    #2  __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x559619075af0, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
    #3  0x00007f77cc4e1a41 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x559619075a90, cond=0x559619075ac8) at ./nptl/pthread_cond_wait.c:503
    #4  ___pthread_cond_wait (cond=0x559619075ac8, mutex=0x559619075a90) at ./nptl/pthread_cond_wait.c:627
    #5  0x00005596168b84b5 in ACE_Condition<ACE_Thread_Mutex>::wait(ACE_Time_Value const*) ()
    #6  0x00005596168b7842 in ACE_Activation_Queue::dequeue(ACE_Time_Value*) ()
    #7  0x00005596168a9dc5 in DelayExecutor::svc() ()
    #8  0x00005596168fa435 in ACE_Task_Base::svc_run(void*) ()
    #9  0x0000559616915c9f in ACE_Thread_Adapter::invoke() ()
    #10 0x00007f77cc4e2ac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
    #11 0x00007f77cc574660 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
    
    Thread 4 (Thread 0x7f77c898a640 (LWP 80746)):
    #0  __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x559619075a--Type <RET> fo--Typ--Typ--Type <---Ty----Typ--Type --Ty----Ty--Type <RET> for more, q to quit, c to continue without paging--
    f0) at ./nptl/futex-internal.c:57
    #1  __futex_abstimed_wait_common (cancel=true, private=0, abstime=0x0, clockid=0, expected=0, futex_word=0x559619075af0) at ./nptl/futex-internal.c:87
    #2  __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x559619075af0, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
    #3  0x00007f77cc4e1a41 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x559619075a90, cond=0x559619075ac8) at ./nptl/pthread_cond_wait.c:503
    #4  ___pthread_cond_wait (cond=0x559619075ac8, mutex=0x559619075a90) at ./nptl/pthread_cond_wait.c:627
    #5  0x00005596168b84b5 in ACE_Condition<ACE_Thread_Mutex>::wait(ACE_Time_Value const*) ()
    #6  0x00005596168b7842 in ACE_Activation_Queue::dequeue(ACE_Time_Value*) ()
    #7  0x00005596168a9dc5 in DelayExecutor::svc() ()
    #8  0x00005596168fa435 in ACE_Task_Base::svc_run(void*) ()
    #9  0x0000559616915c9f in ACE_Thread_Adapter::invoke() ()
    #10 0x00007f77cc4e2ac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
    #11 0x00007f77cc574660 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
    
    Thread 3 (Thread 0x7f77cc2a6640 (LWP 80738)):
    #0  0x00007f77cc5337f8 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=0x7f77cc2a5dd0, rem=0x0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:78
    #1  0x00007f77cc538677 in __GI___nanosleep (req=<optimized out>, rem=<optimized out>) at ../sysdeps/unix/sysv/linux/nanosleep.c:25
    #2  0x00005596168aaeef in ACE_Based::Thread::Sleep(unsigned long) ()
    #3  0x00005596168a185a in SqlDelayThread::run() ()
    #4  0x00005596168aaa5d in ACE_Based::Thread::ThreadTask(void*) ()
    #5  0x00007f77cc4e2ac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
    #6  0x00007f77cc574660 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
    
    Thread 2 (Thread 0x7f77cbaa5640 (LWP 80741)):
    #0  0x00007f77cc5337f8 in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=0x7f77cbaa4dd0, rem=0x0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:78
    #1  0x00007f77cc538677 in __GI___nanosleep (req=<optimized out>, rem=<optimized out>) at ../sysdeps/unix/sysv/linux/nanosleep.c:25
    #2  0x00005596168aaeef in ACE_Based::Thread::Sleep(unsigned long) ()
    #3  0x00005596168a185a in SqlDelayThread::run() ()
    #4  0x00005596168aaa5d in ACE_Based::Thread::ThreadTask(void*) ()
    #5  0x00007f77cc4e2ac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
    #6  0x00007f77cc574660 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
    
    Thread 1 (Thread 0x7f77cc2c2740 (LWP 80735)):
    #0  __strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:74
    #1  0x0000559616345e55 in RandomPlayerbotFactory::CreateRandomBotName[abi:cxx11](unsigned char) ()
    #2  0x0000559616346257 in RandomPlayerbotFactory::CreateRandomBot(unsigned char) ()
    #3  0x0000559616348abf in RandomPlayerbotFactory::CreateRandomBots() ()
    #4  0x0000559616336e35 in PlayerbotAIConfig::Initialize() ()
    #5  0x00005596162a77f0 in World::SetInitialWorldSettings() ()
    #6  0x0000559615fc0e91 in main ()

    Thread 1 should be the crashing thread.

  5. By reading the code, I used a workaround by setting random bot to 0. So that we don't run into the crashing code at all. But it would be fun to have som random bots :( 

    AiPlayerbot.RandomBotAccountCount = 0

     

        for (int accountNumber = 0; accountNumber < sPlayerbotAIConfig.randomBotAccountCount; ++accountNumber)
        {
        	// ......
    
            RandomPlayerbotFactory factory(accountId);
            for (uint8 cls = CLASS_WARRIOR; cls < MAX_CLASSES; ++cls)
            {
                if (cls != 10 && cls != 6)
                {
                    factory.CreateRandomBot(cls);       <==== crashing from here
                }
            }

     

  6. 
    Initializing AI Playerbot by ike3, based on the original Playerbot by blueboy
    Creating new random bot for class 1
    Segmentation fault (core dumped)

    When I enable aiplayerbot, mangod would crash at startup as above.
    I can't find anything useful from world-server.log.

    backtrace from the coredump
     

    Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
    Core was generated by `./mangosd'.
    Program terminated with signal SIGSEGV, Segmentation fault.
    #0  __strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:74
    74	../sysdeps/x86_64/multiarch/strlen-avx2.S: No such file or directory.
    [Current thread is 1 (Thread 0x7f77cc2c2740 (LWP 80735))]
    (gdb) bt
    #0  __strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:74
    #1  0x0000559616345e55 in RandomPlayerbotFactory::CreateRandomBotName[abi:cxx11](unsigned char) ()
    #2  0x0000559616346257 in RandomPlayerbotFactory::CreateRandomBot(unsigned char) ()
    #3  0x0000559616348abf in RandomPlayerbotFactory::CreateRandomBots() ()
    #4  0x0000559616336e35 in PlayerbotAIConfig::Initialize() ()
    #5  0x00005596162a77f0 in World::SetInitialWorldSettings() ()
    #6  0x0000559615fc0e91 in main ()

    Do we have any known bug in this area?

    Thanks

  7.     -- Evaluate all settings
        SET @cCurResult := (SELECT description FROM db_version ORDER BY `version` DESC, STRUCTURE DESC, CONTENT DESC LIMIT 0,1);
        SET @cOldResult := (SELECT description FROM db_version WHERE `version`=@cOldVersion AND `structure`=@cOldStructure AND `content`=@cOldContent);
        SET @cNewResult := (SELECT description FROM db_version WHERE `version`=@cNewVersion AND `structure`=@cNewStructure AND `content`=@cNewContent);
    
        IF (@cCurResult = @cOldResult) THEN    -- Does the current version match the expected version
            -- APPLY UPDATE

    After reading the update file "Rel22_01_001_Release_22.sql", it's skipped because the current version "21_2_1" does not match the expected "21_4_1".
    But how do I find the patch from "21_2_1" to "21_4_1"? The content in Rel21 doesn't look right :( :
     

    ls Rel21
    Rel20_to_BaseRel21_Updates  readme.txt

     

  8. 2023-12-29 11:25:44 ERROR:The table `db_version` indicates that your [Realmd] database does not match the expected structure!
    2023-12-29 11:25:44 ERROR:
    2023-12-29 11:25:44 ERROR:  [A] You have database Version: 21
    2023-12-29 11:25:44 ERROR:                      Structure: 2
    2023-12-29 11:25:44 ERROR:                        Content: 1
    2023-12-29 11:25:44 ERROR:                    Description: Add_field_comments
    2023-12-29 11:25:44 ERROR:
    2023-12-29 11:25:44 ERROR:  [B] The core needs database Version: 22
    2023-12-29 11:25:44 ERROR:                            Structure: 1
    2023-12-29 11:25:44 ERROR:                              Content: 1
    2023-12-29 11:25:44 ERROR:                          Description: Release 22
    2023-12-29 11:25:44 ERROR:
    2023-12-29 11:25:44 ERROR:You must apply all updates after [A] to [B] to use MaNGOS with this database.
    2023-12-29 11:25:44 ERROR:These updates are included in the database/Realmd/Updates folder.


    I tried to apply the update, but it's "skipped"

    mangos@mangos:~/mangos/one/db/database/Realm/Updates/Rel22$ mysql -u mangos -pmangos mangos_auth < Rel22_01_001_Release_22.sql
    ===== Status =====	=== Expected ===	===== Found Version =====
    * UPDATE SKIPPED *	Rel21_04_001 - IS NOT APPLIED	21_2_1 - Add_field_comments


    My "db_version"

     

    MariaDB [mangos_auth]> SELECT * FROM db_version ORDER BY VERSION DESC, structure DESC, content DESC LIMIT 0,1
        -> ;
    +---------+-----------+---------+--------------------+------------------------------------------+
    | version | structure | content | description        | comment                                  |
    +---------+-----------+---------+--------------------+------------------------------------------+
    |      21 |         2 |       1 | Add_field_comments | Base Database from 20150409 to Rel21_2_1 |
    +---------+-----------+---------+--------------------+------------------------------------------+

    Please feel free to comment.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use