• Ben Buzbee's avatar
    Log error if there are no event handlers registered · 337c5d76
    Ben Buzbee authored
    We see this error all the time
    ```
    no handler registered for event
    event.Message=, event.Annotations=, event.Timestamp=0001-01-01T00:00:00Z, event.TaskName=, event.AllocID=, event.TaskID=,
    ```
    
    So we're handling an even with all default fields. I noted that this can
    happen if only err is set as in
    
    ```
    func (d *driverPluginClient) handleTaskEvents(reqCtx context.Context, ch chan *TaskEvent, stream proto.Driver_TaskEventsClient) {
    	defer close(ch)
    	for {
    		ev, err := stream.Recv()
    		if err != nil {
    			if err != io.EOF {
    				ch <- &TaskEvent{
    					Err: grpcutils.HandleReqCtxGrpcErr(err, reqCtx, d.doneCtx),
    				}
    			}
    ```
    
    In this case Err fails to be serialized by the logger, see this test
    
    ```
    
    	ev := &drivers.TaskEvent{
    		Err: fmt.Errorf("errz"),
    	}
    	i.logger.Warn("ben test", "event", ev)
    	i.logger.Warn("ben test2", "event err str", ev.Err.Error())
    	i.logger.Warn("ben test3", "event err", ev.Err)
    	ev.Err = nil
    	i.logger.Warn("ben test4", "nil error", ev....
    337c5d76