1. 程式人生 > >gerrit 在git review的時候碰上miss unkown + hash值

gerrit 在git review的時候碰上miss unkown + hash值

相關 color packer fatal 進入 unpack ges 1.0 eclipse

案例:gerrit 在git review的時候碰上miss unkown + hash值,現象如下

[email protected]:~/share/37N/master_gerrit/OS_gerrit_ALPS-MP-N0.MP1-V1.0.2_PRI6737M_65_N$ git review
error: unpack failed: error Missing unknown b717c6e642d0a5e649099e761d2f6aa37804ac1d
fatal: Unpack error, check server log
To ssh://[email protected]:29418/OS_gerrit_ALPS-MP-N0.MP1-V1.0.2_PRI6737M_65_N
! [remote rejected] HEAD -> refs/publish/master (n/a (unpacker error))


查看gerrit的error日誌:

Error in GET /changes/561/revisions/b717c6e642d0a5e649099e761d2f6aa37804ac1d/commit?links
com.google.gwtorm.server.OrmException: com.google.gerrit.server.patch.PatchSetInfoNotAvailableException: org.eclipse.jgit.errors.MissingObjectException: Missing unknown b717c6e642d0a5e649099e761d2f6aa37804ac1d

....

其中有兩個很關鍵的參數,561是它的CHANGE_ID, b717c6e642d0a5e649099e761d2f6aa37804ac1d是它對應的哈希值

查看了相關的文檔,知道可能造成的原因是,對應的倉庫被刪掉了,但是gerrit審核頁面上面還有此倉庫待審核的事項沒有處理,導致gerrit在數據庫還有此倉庫的記錄。


解決方法:

1-停止gerrit。/etc/init.d/gerrit stop

2-找到安裝gerrit時的war包,執行java -jar gerrit-2.11.4.war gsql

進入gsql數據庫,找到表CHANGES和PATCH_SETS,然後刪掉.(註意一定要找到對應的哈希值的記錄)

具體的數據庫操作命令是

delete changes where change_id=561

delete patch_sets where change_id=561

3-然後重啟gerrit

gerrit 在git review的時候碰上miss unkown + hash值