您好,登錄后才能下訂單哦!
這篇文章給大家介紹怎么解決openstack novnc一段時間后自動掛斷登錄不上問題,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
/etc/init.d/openstack-nova-novncproxy status
openstack-nova-novncproxy dead but pid file exists
由于沒有日志,無法查看具體原因。直接配置log-file對應這個進程似乎沒有效果,因此采用手動起進程方式,將日志重定向的ttx.log。
nohup /usr/bin/nova-novncproxy --web /usr/share/novnc/ >> ttx.log &
半天之后,發現控制臺仍然登錄不進去,查看日志log,發現出現如下log 異常:
{</usr/lib/python2.6/site-packages/amqp/channel.py:608: DeprecationWarning: auto_delete exchanges has been deprecated 'auto_delete exchanges has been deprecated')) 138: 192.168.10.100: Plain non-SSL (ws://) WebSocket connection 138: 192.168.10.100: Version hybi-13, base64: 'True' 138: 192.168.10.100: Path: '/websockify' 138: handler exception: Invalid Token 138: Traceback (most recent call last): File "/usr/lib/python2.6/site-packages/websockify/websocket.py", line 711, in top_new_client self.new_client() File "/usr/lib/python2.6/site-packages/nova/console/websocketproxy.py", line 56, in new_client raise Exception(_("Invalid Token")) Exception: Invalid Token
|
按照異常直接跟蹤代碼:
vim /usr/lib/python2.6/site-packages/nova/console/websocketproxy.py
if not connect_info: LOG.audit("Invalid Token: %s", token) raise Exception(_("Invalid Token")) |
發現上述語句出現異常,因此試驗強制拋出異常,監測是否該異常會導致novnc進程掛掉。
前臺顯示啟動:
/usr/bin/nova-novncproxy --web /usr/share/novnc/
發現只要raise一拋,novnc則登錄不上去。
因為找到了導致novnc自動死掉的地方,具體為什么報Invalid Token異常,請自行跟蹤代碼:
當然最簡單的辦法就是直接把異常語句屏蔽掉。(當然不贊同,畢竟最好還是找到為什么拋異常的原因)
后續試驗一段時間,發現該錯誤繼續重現,
經過排查試驗,最后得出結論:
1、由于/etc/init.d/openstack-nova-novncproxy stop時候,
每次只將第一個進程kill掉(有時候是重啟/etc/init.d/openstack-nova-console)
2、而頁面沒點擊一個控制臺鏈接就會對應多個進程
所以每次只是kill掉第一個進程的話,其他進程并沒有重啟,這樣導致界面的控制臺登錄出錯
且后面查看 /etc/init.d/openstack-nova-novncproxy staus時候,是novncproxy dead but pid file exists
最終解決辦法是:將vim /etc/init.d/openstack-nova-novncproxy
將stop的邏輯修改下,將所有的novnc進程全部kill掉。(其實在start時候只記錄了一個pid號)
關于怎么解決openstack novnc一段時間后自動掛斷登錄不上問題就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。