Remove unnecessary locking
The lock didn't really protect anything but since it was not explicitly initialized, it caused a hang.
This commit is contained in:
		@ -749,11 +749,9 @@ static void closeSession(MXS_ROUTER *instance, MXS_ROUTER_SESSION *router_sessio
 | 
			
		||||
    AvroSession *client = (AvroSession *) router_session;
 | 
			
		||||
 | 
			
		||||
    spinlock_acquire(&client->catch_lock);
 | 
			
		||||
    spinlock_acquire(&client->file_lock);
 | 
			
		||||
 | 
			
		||||
    client->state = AVRO_CLIENT_UNREGISTERED;
 | 
			
		||||
 | 
			
		||||
    spinlock_release(&client->file_lock);
 | 
			
		||||
    spinlock_release(&client->catch_lock);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -767,13 +767,11 @@ static bool avro_client_stream_data(AvroSession *client)
 | 
			
		||||
 | 
			
		||||
        bool ok = true;
 | 
			
		||||
 | 
			
		||||
        spinlock_acquire(&client->file_lock);
 | 
			
		||||
        if (client->file_handle == NULL &&
 | 
			
		||||
            (client->file_handle = maxavro_file_open(filename)) == NULL)
 | 
			
		||||
        {
 | 
			
		||||
            ok = false;
 | 
			
		||||
        }
 | 
			
		||||
        spinlock_release(&client->file_lock);
 | 
			
		||||
 | 
			
		||||
        if (ok)
 | 
			
		||||
        {
 | 
			
		||||
@ -909,7 +907,6 @@ static void rotate_avro_file(AvroSession *client, char *fullname)
 | 
			
		||||
    client->avro_binfile[len] = 0;
 | 
			
		||||
    client->last_sent_pos = 0;
 | 
			
		||||
 | 
			
		||||
    spinlock_acquire(&client->file_lock);
 | 
			
		||||
    maxavro_file_close(client->file_handle);
 | 
			
		||||
 | 
			
		||||
    if ((client->file_handle = maxavro_file_open(fullname)) == NULL)
 | 
			
		||||
@ -921,8 +918,6 @@ static void rotate_avro_file(AvroSession *client, char *fullname)
 | 
			
		||||
        MXS_INFO("Rotated '%s'@'%s' to file: %s", client->dcb->user,
 | 
			
		||||
                 client->dcb->remote, fullname);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    spinlock_release(&client->file_lock);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 | 
			
		||||
@ -239,7 +239,6 @@ struct AvroSession
 | 
			
		||||
    enum avro_data_format format; /*< Stream JSON or Avro data */
 | 
			
		||||
    char*                 uuid; /*< Client UUID */
 | 
			
		||||
    SPINLOCK              catch_lock; /*< Event catchup lock */
 | 
			
		||||
    SPINLOCK              file_lock; /*< Protects rses_deleted */
 | 
			
		||||
    Avro*                 router; /*< Pointer to the owning router */
 | 
			
		||||
    MAXAVRO_FILE*         file_handle; /*< Current open file handle */
 | 
			
		||||
    uint64_t              last_sent_pos; /*< The last record we sent */
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user