Not signed in (Sign In)
    • CommentAuthoritonohito
    • CommentTimeDec 1st 2008 edited
     
    Hello, guys!

    First of all, thank you very much for great addons you created and, especially, for continue to work on them so much time.

    Can you help me to solve strange problem I've got when tried to use new SearchUI interface? I set filters and otehr options, did fresh scan of AH and opened SearchUI by right-click on search minibutton. Then in Searchers selected Disenchant and pressed Search button. I got list of results. But when I tried to press Purchase button (selected item from list before that) - I see label AucAdv: Stage 1 and WoW client just silently log me out. :( No errors, nothing - just logout. :(

    I tried to use Bid and Buuyout buttons instead of Purchase - no difference, just logout.
    And, of course, I tried to make clean install of last release of AucSuite with no other addons installed, except of Blizzard ones. All the same.
    Tried with Release version (5.1.3715) and with beta (5.1.3867).

    At the same time BtmScan works perfectly, without any errors. Where was I mistaken?
    •  
      CommentAuthordinesh
    • CommentTimeDec 1st 2008
     
    sorry, i have no good ideas. is it logging you out (back to the character selection screen), or is it actually giving you a "disconnected from server" message and making you log in again from scratch?
    •  
      CommentAuthorbrykrys
    • CommentTimeDec 1st 2008
     
    Just a thought - check the settings for the ScanFinish module, and see if you have the "Log out when scan complete" option enabled; although that is only supposed to log you out after a full scan, some people have been reporting oddities with that module.
    • CommentAuthoritonohito
    • CommentTimeDec 2nd 2008
     
    Posted By: dineshsorry, i have no good ideas. is it logging you out (back to the character selection screen), or is it actually giving you a "disconnected from server" message and making you log in again from scratch?


    Disconnected from server. :(

    Posted By: brykrysJust a thought - check the settings for the ScanFinish module, and see if you have the "Log out when scan complete" option enabled; although that is only supposed to log you out after a full scan, some people have been reporting oddities with that module.


    Not enabled :(

    Maybe you'll suggest me, how can I debug this? I know LUA a little, but not embedded into WOW. And I don't know, what debug abilities present. Can I do "coredump" by some way?
    •  
      CommentAuthordinesh
    • CommentTimeDec 2nd 2008
     
    i'm wondering if it's trying to view data for an item link which hasn't yet been seen on your server. try renaming or deleting your auc-scandata.lua from the WTF directory while the game is closed. this will not affect your statistics, but you will have to do a new scan once you log in.
    • CommentAuthorJanike
    • CommentTimeDec 3rd 2008
     
    Well, same for me. Just logs me out, whenever I use search UI for several, but not for all items. Also, doing a "refresh" on an item in appraiser, disconnects for some items too, but not for all. It seems it's related, and happens on rescan for that item.
    I'm playing on russian realms. And serching (manually typing) for item that otherwise disconnects works. Not sure what it is ether, russian version of wow allow to to type up to 31 char in search field, and russian names for items usually longer than english version, if it matters. Maybe it just a coincidence, but logouts happens on items with long names.
    Anyway, if there is anything I can do to help investigate this issue... just name it.
    •  
      CommentAuthordinesh
    • CommentTimeDec 4th 2008
     
    that is default blizzard behavior. if you try to create a link for an item which has not yet been "seen" by the server since it was rebooted, it will disconnect you. are you trying to search for a rare item?
    • CommentAuthorJanike
    • CommentTimeDec 4th 2008
     
    Well as for "refresh" button issue, I was searching for items that on my backpack, so it's seen by the server and my client. As for SearchUI, I do it after AH scan, searching for items to disenchant, it isn't rare, ordinary craft junk seen by server and available to buyout.
    Already tried both, versions of auctioneer release and beta. Both have the same issue.
    •  
      CommentAuthordinesh
    • CommentTimeDec 4th 2008
     
    can you tell us which specific items you were looking at? the full itemID would help.
    • CommentAuthorJanike
    • CommentTimeDec 5th 2008 edited
     
    For example, I have 3 items in my backpack:
    [Чародейский кушак] itemid 8291 (refresh works)
    [Клинок Измерений со знаком медведя] itemid 15219 (refresh isn't working)
    [Мятый бархатный плащ с меткой волшебника] itemid 36409 (refresh isn't working)

    It just display "Refreshing view of [itemname]" and then disconnected from server

    Checked every other item in backpack, eg reagents, etc... refresh works ok. Just this two items, i'll keep them for a while for testing purposes.
    •  
      CommentAuthordinesh
    • CommentTimeDec 5th 2008
     
    well, no current versions are fully localized yet, so it may just be an issue with your locale, currently. I don't have any other salient ideas.
    • CommentAuthorJanike
    • CommentTimeDec 5th 2008
     
    itonohito, which locale do you have?
    •  
      CommentAuthorhotshift
    • CommentTimeDec 6th 2008
     
    Exactly the same behavior with a french client here.
    I did /auc get-all*, search UI, disenchant, and "bing" disconnected for some items (about 1 every 40 green I buy to disenchant with a level 325-450)...


    *btw this is a marvellous function of auctioneer! The more I discover on AA, the more i love it! Good job :)
    • CommentAuthoritonohito
    • CommentTimeDec 7th 2008
     
    Posted By: Janikeitonohito, which locale do you have?


    Russian too. :)
    • CommentAuthorJanike
    • CommentTimeDec 7th 2008
     
    With introduction of Russian realms, percentage of localized client’s grew in numbers. I hope developers answer to this issue in next releases...
    Wish I could play with English client on Russian realms, but unfortunately this isn’t an option blizzard want us to have.
    • CommentAuthorRockSlice
    • CommentTimeDec 7th 2008
     
    AucAdvanced has had the groundwork for localization done, and will be in the next release (and is already in the Preview builds)

    However, we need your help in localizing.
    If you go to http://localizer.norganna.org, you can help us enter in proper translations. At the moment, the russian (ruRU) locale is only 44% complete for Auctioneer.
    • CommentAuthorJanike
    • CommentTimeDec 8th 2008
     
    Ok, small help in return for great plugin. I'll see what I can do....
    • CommentAuthorJanike
    • CommentTimeJan 7th 2009
     
    Well, HNY to all!

    Sorry, no news for some time. I've been quite busy last weeks, spending holidays with my family and the kids.
    To the point, I was able to dedicate some time to this problem and found the source of it.

    Disconnect happen when we call original WoW API function via
    "private.Hook.QueryAuctionItems" with invalid name parameter.
    Name parameter have limit on the length of a string that we can pass
    to it and seems like it is limited to 63 bytes. Disconnect only happen
    when we pass invalid utf8 encoded string.
    This is happen only on russian realms because item names in russian
    encoded using 2 byte character codes and are usually longer than 30
    characters, resulting in a string larger than 63 bytes. If game then cut that
    string to 63 bytes, we have big chances to hit it in the middle of a
    2 byte character, resulting in invalid encoded utf8 string and
    get disconnected from the server.

    I have traced my problems to 2 function calls in CoreScan.lua script
    and successfully worked around them by using the following code:

    in function lib.ScanPage on line 904 before calling "private.Hook.QueryAuctionItems"
    I've added some code to trim name argument to 60 bytes, ensuring that
    no control character left at the end of a line:
    local name = private.curQuery.name -- make a copy of name (dont forget to use it in actual call to private.Hook.QueryAuctionItems)
    if (name and string.len(name) > 61) then -- check name for long utf-8 strings
    name = string.sub(name, 1, 61) -- strip it off
    if (string.byte(name, 61) >= 192) then -- check last byte for utf-8 start code
    name = string.sub(name, 1, 60) -- ugly code to strip last byte
    end
    end

    same code was added to wrapper function QueryAuctionItems on line 1264
    just before queuing call to "private.Hook.QueryAuctionItems"

    After applying such hack I have no disconnects in about 2 weeks of
    testing and everyday playing.

    I hope core developers can use this information to fix disconnect
    issues in main code. I have little knowledge of Auc-Advanced internals, and my code
    far from being perfect with possible side effects :)

    I was using AuctioneerSuite v5.1.3935 in my testings.
    •  
      CommentAuthordinesh
    • CommentTimeJan 7th 2009
     
    we were purposefully not going to address this, because we felt it was a blizzard bug that they needed to fix. i'm not sure if our feelings have evolved, though, since i think we heard back that blizzard decided it was working as intended, since they instruct their controls to trim the search string down (even though their API is not safely limited in the same way).

    my feeling is that we should implement some safety check for the time being, at least.
    • CommentAuthorJanike
    • CommentTimeJan 7th 2009
     
    Well, I suppose Blizzard could, and in theory even should, fix this issue. Good API should not trigger disconnects this way, it should report an error if it receive bad arguments to it's functions. There should be no problem increasing limit from 63 bytes to something more adequate, considering support of utf 8 and long item names in localized versions. If we couldn't type full item name in search box, it's already a bug, maybe not critical, but a bug...

    For English and other clients that use single byte characters it's not really a problem at all, item names never reach this limit and won't trigger disconnect. But since I switched to Russian realm, I triggered this bug almost instantly in a worst possible way. This bug renders almost all Auctioneer advanced features useless, especially SearchUI. So my point of view, if we aware of this bug happening and we could easily work around it, we should do it. And If Blizzard fix this in later patches, we could clean up the code.

    I suppose this or preferably better code could be wrapped to simple function like this:
    function lib.qaiPrepareName(ItemName)
    local name = ItemName
    if (name and string.len(name) > 61) then
    name = string.sub(name, 1, 61)
    if (string.byte(name, 61) >= 192) then
    name = string.sub(name, 1, 60)
    end
    end
    return name
    end


    And if we no longer need it, it could be safely replaced by:
    function lib.qaiPrepareName(ItemName)
    return ItemName
    end

    Or drop it all together..

    Anyway, thanks for the information and the answer.
    •  
      CommentAuthordinesh
    • CommentTimeJan 7th 2009
     
    please vote for the issue here: http://jira.norganna.org/browse/APPR-236
    •  
      CommentAuthorbrykrys
    • CommentTimeJan 11th 2009
     
    Issue moved to http://jira.norganna.org/browse/ADV-397 (same issue, different section of Auctioneer)

    Janike: I took your code and modified it a bit. It's in Dev version 3967. Until it gets added to the beta version, it can be accessed at http://svn.norganna.org/auctioneer/trunk/Auc-Advanced/CoreScan.lua - see what you think
    • CommentAuthorJanike
    • CommentTimeJan 25th 2009
     
    Sorry, didn't noticed your reply earlier.
    I see this code in release already. Thanks for support, I'll try to test it anyway.
World of Warcraft™ and Blizzard Entertainment™ are trademarks or registered trademarks of Blizzard Entertainment, Inc. in the U.S. and/or other countries.