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 {
50
50
pub fn last_seen_reference ( & self ) -> Result < Option < Oid > > {
51
51
let mut conn = self . db . get ( ) ?;
52
52
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) ?) ) ;
61
54
}
62
55
Ok ( None )
63
56
}
@@ -629,16 +622,13 @@ mod tests {
629
622
}
630
623
631
624
#[ test]
632
- fn test_broken_db_reference_locks_queue ( ) {
625
+ fn test_broken_db_reference_breaks ( ) {
633
626
crate :: test:: wrapper ( |env| {
634
627
let mut conn = env. db ( ) . conn ( ) ;
635
628
set_config ( & mut conn, ConfigName :: LastSeenIndexReference , "invalid" ) ?;
636
629
637
630
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( ) ) ;
642
632
643
633
Ok ( ( ) )
644
634
} ) ;
Original file line number Diff line number Diff line change @@ -21,8 +21,18 @@ pub fn watch_registry(
21
21
22
22
// On startup we fetch the last seen index reference from
23
23
// 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
+ }
26
36
}
27
37
28
38
loop {
You can’t perform that action at this time.
0 commit comments