File tree Expand file tree Collapse file tree 2 files changed +15
-15
lines changed Expand file tree Collapse file tree 2 files changed +15
-15
lines changed Original file line number Diff line number Diff line change @@ -50,14 +50,7 @@ impl BuildQueue {
5050 pub fn last_seen_reference ( & self ) -> Result < Option < Oid > > {
5151 let mut conn = self . db . get ( ) ?;
5252 if let Some ( value) = get_config ( & mut conn, ConfigName :: LastSeenIndexReference ) ?. as_str ( ) {
53- match Oid :: from_str ( value) {
54- Ok ( oid) => return Ok ( Some ( oid) ) ,
55- Err ( err) => {
56- log:: error!( "queue locked because of invalid last_seen_index_reference \" {}\" in database: {}" , value, err) ;
57- self . lock ( ) ?;
58- return Ok ( None ) ;
59- }
60- }
53+ return Ok ( Some ( Oid :: from_str ( value) ?) ) ;
6154 }
6255 Ok ( None )
6356 }
@@ -629,16 +622,13 @@ mod tests {
629622 }
630623
631624 #[ test]
632- fn test_broken_db_reference_locks_queue ( ) {
625+ fn test_broken_db_reference_breaks ( ) {
633626 crate :: test:: wrapper ( |env| {
634627 let mut conn = env. db ( ) . conn ( ) ;
635628 set_config ( & mut conn, ConfigName :: LastSeenIndexReference , "invalid" ) ?;
636629
637630 let queue = env. build_queue ( ) ;
638- queue. unlock ( ) ?;
639- assert ! ( !queue. is_locked( ) ?) ;
640- assert_eq ! ( queue. last_seen_reference( ) ?, None ) ;
641- assert ! ( queue. is_locked( ) ?) ;
631+ assert ! ( queue. last_seen_reference( ) . is_err( ) ) ;
642632
643633 Ok ( ( ) )
644634 } ) ;
Original file line number Diff line number Diff line change @@ -21,8 +21,18 @@ pub fn watch_registry(
2121
2222 // On startup we fetch the last seen index reference from
2323 // the database and set it in the local index repository.
24- if let Some ( oid) = build_queue. last_seen_reference ( ) ? {
25- index. diff ( ) ?. set_last_seen_reference ( oid) ?;
24+ match build_queue. last_seen_reference ( ) {
25+ Ok ( Some ( oid) ) => {
26+ index. diff ( ) ?. set_last_seen_reference ( oid) ?;
27+ }
28+ Ok ( None ) => { }
29+ Err ( err) => {
30+ log:: error!(
31+ "queue locked because of invalid last_seen_index_reference in database: {}" ,
32+ err
33+ ) ;
34+ build_queue. lock ( ) ?;
35+ }
2636 }
2737
2838 loop {
You can’t perform that action at this time.
0 commit comments