There has been some confusion here, around the status of this ticket, where the problems exist, and apparently what the problems are. I want to make things super clear to everyone involved. I also want to provide very clear action items regarding what we need from OW at this time.
Firstly, this has been an exploration, since all I knew when reporting these issues was the symptoms and not the cause. What I know now is more than before, but neither of the two problems in this topic have been fully resolved and both require action from OW.
I will now describe each of the two problems we’re seeing.
rosterChange event ordering
Originally, the symptom reported was that the rosterChange
event did not show up. However, after further manual inspection of the OW logs, I can see that the event does show up, but not always in the same order. Sometimes it happens before matchStart
and sometimes it happens after. This breaks an assumption we were making and it leads to the four questions I asked in a previous message. I will reiterate them here.
- What are the guarantees on the ordering of events?
- Which events can be shuffled around?
- For example, can
gameState
updates be out of order?
- Is this a bug or something we need to tolerate?
Answering these questions completely is the first action item for OW. Depending on whether or not this is expected behavior, OW will either need to fix the behavior or update the docs to clearly explain the guarantees provided when it comes to event ordering.
Events not showing up at all
This issue has not been addressed at all. I originally included OverwolfLogs_2019-09-02_14-20-02-no-events.zip
to show exactly the state of things just after a match was played, but this has not been addressed. Since OW has not provided any insight into this, I’ve done some analysis on my end and I can see an error reported in the GEP. This error appears to be unique to this zip, so it could very well be the issue.
First, we can examine when the RL game was played.
$ egrep -r -B1 "isInFocus true" Apps/OkLetsPlay/ | tail -2
Apps/OkLetsPlay/index.html.log-2019-09-02 14:11:40,037 (INFO) </Files/profile/overwolf/public/js/app.js> (:249) - INFO [com.okletsplay.front-end.overwolf.event:34] - :onGameInfoUpdated
Apps/OkLetsPlay/index.html.log: #js {:gameInfo #js {:isInFocus true, :isRunning true, :allowsVideoCapture true, :title "Rocket League", :displayName "", :shortTitle "", :id 107981, :classId 10798, :width 1280, :height 720, :logicalWidth 1280, :logicalHeight 720, :renderers #js ["D3D9"], :detectedRenderer "D3D9", :executionPath "C:/Program Files (x86)/Steam/steamapps/common/rocketleague/Binaries/Win32/RocketLeague.exe", :sessionId "c4da0585107b4933aaed1cf15323184a", :commandLine "\"C:/Program Files (x86)/Steam/steamapps/common/rocketleague/Binaries/Win32/RocketLeague.exe\"", :type 0, :typeAsString "Game"}, :resolutionChanged true, :focusChanged false, :runningChanged false, :gameChanged false}
$ egrep -r -B1 "isInFocus false" Apps/OkLetsPlay/ | tail -2
Apps/OkLetsPlay/index.html.log-2019-09-02 14:17:44,475 (INFO) </Files/profile/overwolf/public/js/app.js> (:249) - INFO [com.okletsplay.front-end.overwolf.event:34] - :onGameInfoUpdated
Apps/OkLetsPlay/index.html.log: #js {:gameInfo #js {:isInFocus false, :isRunning false, :allowsVideoCapture true, :title "Rocket League", :displayName "", :shortTitle "", :id 107981, :classId 10798, :width 1280, :height 720, :logicalWidth 1280, :logicalHeight 720, :renderers #js ["D3D9"], :detectedRenderer "D3D9", :executionPath "C:/Program Files (x86)/Steam/steamapps/common/rocketleague/Binaries/Win32/RocketLeague.exe", :sessionId "c4da0585107b4933aaed1cf15323184a", :commandLine "\"C:/Program Files (x86)/Steam/steamapps/common/rocketleague/Binaries/Win32/RocketLeague.exe\"", :type 0, :typeAsString "Game"}, :resolutionChanged false, :focusChanged false, :runningChanged true, :gameChanged false}
So, the game was focused from 2019-09-02 14:11:40,037
to 2019-09-02 14:17:44,475
. Just enough time for a 5 minute match. If we grep the GEP logs around that time, specifically for errors, we can see two matches.
$ egrep -r "2019-09-02 14:1{0,8}.*error.*" Apps/Overwolf\ General\ GameEvents\ Provider/
Apps/Overwolf General GameEvents Provider/index.html.log.1:2019-09-02 14:11:43,444 (INFO) </utils/game_plugin.js> (:169) - [PLUGIN INFO] {"category":"plugin_status","key":"state","value":"error","valueLength":5}
Apps/Overwolf General GameEvents Provider/index.html.log.1:2019-09-02 14:11:43,446 (INFO) </utils/game_plugin.js> (:169) - [PLUGIN INFO] {"category":"plugin_status","key":"last_error","value":"failed_initializing_monitor","valueLength":27}
So, curiously, the GEP has an initialization failure in these logs. Following that failure, during the 5 minutes of the RL match, we get absolutely no events. This leads us to an action item for OW:
- Please investigate this error and confirm if it would cause us to get no events
- Then please inform me if this can be fixed on OW’s end
- If this can’t be fixed on OW’s end, please provide some documentation for working around it
Finally, this may be a red herring. I don’t know the internals of OW and my goal in providing these zips on September 2nd was to have someone more knowledgeable inspect them. If this turns out not to be the issue, the next action item for OW is to have someone more familiar with GEP (and also this ticket) work with me to investigate the problem. This leads me to the final point.
The call with Or
There was a call with Or which seemed to’ve caused some confusion regarding whether or not this issue exists, has been fixed, or is on OW’s end rather than our own. Unfortunately, most of this call was unproductive, since Or was neither familiar with this ticket nor our app. Based on what Or said, the community service team uses a separate ticket system and there was no way for him to know about the history of this ticket. I think, going forward, the best usage of everyone’s time is to only schedule calls with people familiar with the issue at hand. To me, it would probably make most sense to be speaking with Eran or Itay.
With that said, Or helpfully provided a debug DLL for the GEP. It will come in handy for any future GEP issues, or perhaps if my analysis of the no-events issue is incomplete or incorrect.
If there are any remaining questions around the status of this ticket, what I’ve found, or what needs to be done, please let me know. I want to be as helpful as possible and all of us at OkLetsPlay are eager to get these issues addressed.
Kind regards,
Jeaye