青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 14,  comments - 57,  trackbacks - 0
  寫這篇文章是對自己2011bug戰斗時光一個交代,隨著時間的推移,當初印象深刻的痛苦和壓力慢慢消逝,到現在甚至是需要很長時間來弄清楚這中間的關系,趁著現在頭腦還算清楚,記錄下吧。

場景管理

   為了說明Bug產生的原因,先描述下場景管理的實現方式吧。

  1、游戲場景是游戲地圖的一個實例(假設地圖是class),一個地圖可以創建多個場景,場景主要負責管理玩家的移動、廣播等處理。
  2、場景的廣播是采取經典的九宮格方式來實現的,每一個格子的我們定義為Area對象,一個場景的格子組成其實是一個二維數組。
  3、玩家進入場景的時候,根據坐標可以知道要進入哪個格子,每個格子內會保留一個Head指針,標記最新進入的玩家對象。玩家對象上有2個指針,標記玩家所在格子的前一個和后一個對象。可以通過格子內的Head指針便利Area內的所有玩家對象。
  4、玩家移動切換格子的時候,先從原來的格子內Leave,這會調用原來Area對象的Leave函數。再進入新的格子,調用Area的Enter函數。很明顯,Leave函數就是一個鏈表刪除操作,如果玩家是Head,則設置新的Head。
   Enter操作就是將新進入的玩家鏈接到原隊列里,新進入的玩家會被設置為Head。

問題表現  

   根據上面的描述,如果一切按照正常程序,這個方案運轉是沒問題的。最初上線的時候,也沒有出現問題,但是在出了一個資料片之后,服務器基本上每隔半小時左右就會發現有死循環或者宕機問題。

死循環的表現很明顯,就是在遍歷場景玩家的時候,出現死循環。宕機則更加復雜些,每次宕機位置不同,總的來說大概有3-4個地方,每個地方單看都不合常理。
直接分析上面的表現,都找不到真正的的原因,只好擴大搜索范圍了。
比較倒霉的是那個資料片的主要系統都是我開發的,所以自然嫌疑最大,然后大家集中精力來分析我的代碼,由于每個人風格都不同,所以大家看的不太明白的地方都會來問我,所以那個晚上基本就在解答設計疑問了。
被輪了大半個晚上,知道凌晨2點,大家也沒分析出問題,只好先回去睡覺了。結果早上7點,測試給我打電話了,沒辦法只好跑過去了,一到公司,發現圍了一堆老大,老大們很嚴肅:這個問題很嚴重,必須盡快解決。
沒辦法,只好繼續上陣了,戰斗到下午2點,突然靈光一閃,想到了原因,當時感覺真的心力交瘁了,更加感慨的是其實這個問題真和我沒啥關系。。。


原因

   真正導致這次事故的其實是一個小操作:玩家重登錄(手機玩家斷網的時候,服務器會保存一段時間在線狀態)的時候,有的時候由于其他原因,會卡在不能地圖的物理層(不能行動的點),玩家完全不能移動。為了解決這個問題,有個同事在玩家重登錄的時候,直接設置了玩家的坐標到一個可移動的點。
這個看似無關緊要的操作,真正導致了服務器1天多時間內不停的宕機。下面來記錄下分析過程吧。
1、玩家在重登錄前,其實是在場景中的,也就是在一個具體的Area里。
2、由于玩家上線后,直接設置了坐標,而我們后續的計算是通過坐標來獲取Area對象的,其實這里就出現問題了,玩家其實是在A格子的鏈表上,但是根據坐標計算獲得的格子是B。
3、玩家移動后,切換格子,需要從原格子Leave,然后進入新的格子,但是基于上面的原因,所以其實涉及到的有3個格子,(1)、玩家真實所在的格子鏈表(A)。(2)、通過坐標計算所得的格子(B),這個格子對象上會調用Leave操作。
  (3)要進入的新格子(C)。
4、由于玩家其實在格子A,但是我們調用的是B.Leave(player);C.Enter(player),從這里看,肯定是有問題的,但是細看則不然,由于玩家對象是記錄了前一個和后一個對象,所以B.Leave本身并不會破壞B的鏈表結構,C.Enter看上去也沒問題,那么,問題在哪里?
5、真正的原因其實是格子A對象被破壞了,B.Leave(player)上是將玩家從它自己的鏈表上刪除了,鏈表本身是沒有被破壞了,關鍵的原因是如果玩家在格子A是Head,那么實際上在玩家被刪除后,Head應該被改變,但是由于操作的是格子B,所以,A其實被破壞了,很奇妙,這個對象沒有操作,卻被破壞了。后面的問題就簡單了,如果玩家進入的C就是A,則會是一個很明顯的死循環,如果玩家進入的C是一個新的格子,則格子A的對象都不能被感知了。

 

 

 

posted on 2012-07-15 22:13 feixuwu 閱讀(422) 評論(0)  編輯 收藏 引用
<2012年7月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

文章轉載請注明出處

常用鏈接

留言簿(11)

隨筆分類

隨筆檔案

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲区国产区| 亚洲一区欧美激情| 99热精品在线| 亚洲激情黄色| 亚洲欧洲三级| 亚洲美女视频在线观看| 91久久国产自产拍夜夜嗨| 亚洲国产欧美国产综合一区| 亚洲黄色在线看| 亚洲精选国产| 亚洲天堂网在线观看| 亚洲欧美日韩天堂一区二区| 免播放器亚洲| 欧美精品播放| 国产欧美日韩精品a在线观看| 国产亚洲综合性久久久影院| 亚洲高清电影| 亚洲一区二区在| 久久国内精品视频| 亚洲人成人一区二区三区| 一区二区三区**美女毛片| 亚洲欧美在线播放| 欧美韩日一区二区| 国产精品免费在线| 一区二区在线观看视频| 亚洲免费av观看| 久久精品导航| 99热在线精品观看| 久久精品国产亚洲5555| 欧美日韩1080p| 韩日在线一区| 亚洲欧美日韩国产精品| 女女同性精品视频| 亚洲女优在线| 欧美日韩激情网| 原创国产精品91| 亚洲综合好骚| 亚洲国产成人tv| 久久av二区| 国产精品毛片在线| 一本色道久久综合亚洲精品按摩| 久久精品一区中文字幕| 亚洲九九精品| 免费成人网www| 国产在线观看91精品一区| 亚洲一区二区三区中文字幕| 亚洲第一福利视频| 久久精品国产91精品亚洲| 欧美在线观看视频一区二区三区| 国产精品美女一区二区| 国产亚洲一区在线| 亚洲欧美日本伦理| 最近中文字幕mv在线一区二区三区四区| 亚洲线精品一区二区三区八戒| 男人的天堂亚洲| 一色屋精品视频免费看| 欧美在线影院| 亚洲尤物在线视频观看| 欧美色图麻豆| 亚洲一区亚洲| 一区二区三区国产在线观看| 欧美激情1区2区3区| 亚洲激情校园春色| 国产专区综合网| 香蕉av777xxx色综合一区| 日韩一级黄色大片| 欧美午夜激情视频| 午夜精品久久久久久久| 亚洲一线二线三线久久久| 国产精品国产成人国产三级| 中文av字幕一区| 亚洲麻豆国产自偷在线| 欧美日韩一区二区免费在线观看| av成人免费观看| av成人免费观看| 国产精品人人做人人爽人人添| 亚洲欧美日韩另类| 欧美亚洲日本网站| 在线播放一区| 最新成人av网站| 欧美性大战xxxxx久久久| 亚洲欧美国产日韩天堂区| 亚洲欧美日韩国产中文| 国语自产在线不卡| 亚洲国产另类 国产精品国产免费| 欧美aaaaaaaa牛牛影院| 亚洲图片欧洲图片日韩av| 在线综合亚洲欧美在线视频| 国产精品羞羞答答xxdd| 久久夜色撩人精品| 欧美精品日韩精品| 午夜宅男欧美| 久久在线视频在线| 亚洲综合色视频| 久久精品在线| 亚洲永久免费av| 久久久久久久高潮| 国产精品99久久99久久久二8| 午夜在线电影亚洲一区| 亚洲人成啪啪网站| 亚洲午夜在线观看视频在线| 亚洲国产精品久久久久婷婷老年| 亚洲精品视频二区| 国产专区欧美专区| 中国日韩欧美久久久久久久久| 国产女人水真多18毛片18精品视频| 久久久久久久精| 欧美日韩国产成人精品| 久热精品视频| 欧美人与禽猛交乱配| 日韩亚洲欧美成人一区| 精品va天堂亚洲国产| 亚洲高清不卡av| 国产日韩在线视频| 亚洲精品国产精品乱码不99| 国产精品综合久久久| 亚洲国产综合在线看不卡| 国产精品网站一区| 亚洲毛片在线观看.| 国内精品久久久久久久影视麻豆| 亚洲九九九在线观看| 亚洲国产岛国毛片在线| 亚洲欧美电影院| 亚洲在线观看免费视频| 欧美成人午夜剧场免费观看| 亚洲欧美伊人| 欧美日本亚洲| 亚洲国产精品久久久| 亚洲第一区在线| 欧美一二三区在线观看| 午夜精品久久久久久久蜜桃app| 女人天堂亚洲aⅴ在线观看| 久久裸体视频| 国产日韩1区| 亚洲综合另类| 性一交一乱一区二区洋洋av| 欧美三级在线播放| 亚洲国产精品久久91精品| 亚洲国产精品国自产拍av秋霞 | 亚洲影院在线| 欧美日韩精品免费| 亚洲精品日韩欧美| 亚洲精品视频在线观看免费| 久久综合狠狠综合久久综青草| 久久久欧美精品sm网站| 国产午夜精品美女毛片视频| 亚洲女性裸体视频| 久久国产主播精品| 激情综合五月天| 农夫在线精品视频免费观看| 亚洲激情偷拍| 亚洲视频一区| 国产老女人精品毛片久久| 亚洲一区二区三区四区在线观看| 中文在线资源观看网站视频免费不卡 | 国产精品免费观看在线| 亚洲摸下面视频| 欧美影院视频| 国外视频精品毛片| 老司机成人在线视频| 91久久香蕉国产日韩欧美9色| 夜夜嗨网站十八久久| 国产精品久久久久秋霞鲁丝 | 久久久99国产精品免费| 国产亚洲欧美一区二区| 久久精品99国产精品酒店日本| 久久综合影视| 91久久视频| 欧美系列亚洲系列| 久久精品国产成人| 亚洲国产欧美一区| 亚洲一区二区三区高清不卡| 国产农村妇女精品一区二区| 欧美在线免费观看视频| 猛男gaygay欧美视频| 日韩一区二区免费高清| 国产精品私拍pans大尺度在线 | 国产精品v亚洲精品v日韩精品 | 在线观看欧美日韩| 欧美日韩综合视频| 欧美在线免费视频| 亚洲精品视频在线| 久久久久久**毛片大全| 99re6这里只有精品视频在线观看| 欧美午夜剧场| 久久亚洲欧美国产精品乐播| a91a精品视频在线观看| 久久综合九色欧美综合狠狠| 一本色道久久综合亚洲91| 国产一区二区久久精品| 欧美日韩视频在线一区二区观看视频| 亚洲欧美日本精品| 亚洲精品永久免费| 毛片基地黄久久久久久天堂| 香蕉久久一区二区不卡无毒影院| 亚洲黄色av| 国产综合网站| 国产麻豆一精品一av一免费| 欧美日韩高清在线一区| 嫩草成人www欧美|