@@ -121,7 +121,6 @@ where
121121 self . start_assigned_subgraphs ( ) . await ?;
122122
123123 // Spawn a task to handle assignment events.
124- // Blocking due to store interactions. Won't be blocking after #905.
125124 let assignment_event_stream_cancel_handle =
126125 self . assignment_event_stream_cancel_guard . handle ( ) ;
127126
@@ -147,14 +146,17 @@ where
147146 }
148147 } ) ;
149148
150- graph:: spawn_blocking ( fut) ;
149+ graph:: spawn ( fut) ;
151150 Ok ( ( ) )
152151 }
153152
154153 /// Maps an assignment change to an assignment event by checking the
155154 /// current state in the database, ignoring changes that do not affect
156155 /// this node or do not require anything to change.
157- fn map_assignment ( & self , change : AssignmentChange ) -> Result < Option < AssignmentEvent > , Error > {
156+ async fn map_assignment (
157+ & self ,
158+ change : AssignmentChange ,
159+ ) -> Result < Option < AssignmentEvent > , Error > {
158160 let ( deployment, operation) = change. into_parts ( ) ;
159161
160162 trace ! ( self . logger, "Received assignment change" ;
@@ -167,6 +169,7 @@ where
167169 let assigned = self
168170 . store
169171 . assignment_status ( & deployment)
172+ . await
170173 . map_err ( |e| anyhow ! ( "Failed to get subgraph assignment entity: {}" , e) ) ?;
171174
172175 let logger = self . logger . new ( o ! ( "subgraph_id" => deployment. hash. to_string( ) , "node_id" => self . node_id. to_string( ) ) ) ;
@@ -223,7 +226,7 @@ where
223226 let this = this. cheap_clone ( ) ;
224227
225228 async move {
226- match this. map_assignment ( change) {
229+ match this. map_assignment ( change) . await {
227230 Ok ( Some ( event) ) => stream:: once ( futures03:: future:: ok ( event) ) . boxed ( ) ,
228231 Ok ( None ) => stream:: empty ( ) . boxed ( ) ,
229232 Err ( e) => stream:: once ( futures03:: future:: err ( e) ) . boxed ( ) ,
0 commit comments