nfs4 state manager loop on recallable state revoked

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



While playing with callback channel failures, I noticed the state manager
get stuck looping trying to check a lease when the server responds with
SEQ4_STATUS_RECALLABLE_STATE_REVOKED set.

Does this look familiar to anyone?

[67732.348087] nfs4_schedule_lease_recovery: scheduling lease recovery for server fedora
[67732.369726] nfs4_free_slot: slotid 2 highest_used_slotid 1
[67732.372881] nfs4_free_slot: slotid 0 highest_used_slotid 1
[67732.375337] nfs4_schedule_state_renewal: requeueing work. Lease period = 5
[67732.394736] nfs4_schedule_lease_recovery: scheduling lease recovery for server fedora
[67732.401010] nfs4_free_slot: slotid 0 highest_used_slotid 1
[67732.402910] nfs4_free_slot: slotid 1 highest_used_slotid 4294967295
[67732.404659] nfs4_schedule_stateid_recovery: scheduling stateid recovery for server fedora
[67732.422848] nfs4_schedule_lease_recovery: scheduling lease recovery for server fedora
[67732.426257] nfs4_free_slot: slotid 1 highest_used_slotid 0
[67732.427250] nfs4_free_slot: slotid 0 highest_used_slotid 4294967295
[67732.428291] nfs41_handle_sequence_flag_errors: "fedora" (client ID f49be45401000000) flags=0x00000041
[67732.429596] nfs41_handle_recallable_state_revoked: Recallable state revoked on server fedora!
[67732.430746] nfs4_schedule_state_renewal: requeueing work. Lease period = 60
[67732.431817] nfs4_recovery_handle_error: handled error 0 for server fedora
[67732.439132] nfs4_bind_conn_to_session: bind_conn_to_session was successful for server fedora!
[67732.451098] nfs4_schedule_lease_recovery: scheduling lease recovery for server fedora
[67732.454522] nfs4_free_slot: slotid 1 highest_used_slotid 0
[67732.455557] nfs4_free_slot: slotid 0 highest_used_slotid 4294967295
[67732.456647] nfs41_handle_sequence_flag_errors: "fedora" (client ID f49be45401000000) flags=0x00000040
[67732.457986] nfs41_handle_recallable_state_revoked: Recallable state revoked on server fedora!
[67732.459215] nfs4_schedule_state_renewal: requeueing work. Lease period = 60
[67732.460350] nfs4_recovery_handle_error: handled error 0 for server fedora
[67732.472138] nfs4_schedule_lease_recovery: scheduling lease recovery for server fedora
[67732.475707] nfs4_free_slot: slotid 1 highest_used_slotid 0
[67732.476779] nfs4_free_slot: slotid 0 highest_used_slotid 4294967295
[67732.477917] nfs41_handle_sequence_flag_errors: "fedora" (client ID f49be45401000000) flags=0x00000040
[67732.479294] nfs41_handle_recallable_state_revoked: Recallable state revoked on server fedora!
[67732.480572] nfs4_schedule_state_renewal: requeueing work. Lease period = 60
[67732.481753] nfs4_recovery_handle_error: handled error 0 for server fedora
[67732.493666] nfs4_schedule_lease_recovery: scheduling lease recovery for server fedora
[67732.497269] nfs4_free_slot: slotid 1 highest_used_slotid 0
[67732.498402] nfs4_free_slot: slotid 0 highest_used_slotid 4294967295
[67732.499563] nfs41_handle_sequence_flag_errors: "fedora" (client ID f49be45401000000) flags=0x00000040
[67732.500894] nfs41_handle_recallable_state_revoked: Recallable state revoked on server fedora!
[67732.502159] nfs4_schedule_state_renewal: requeueing work. Lease period = 60

I think what's happening is that we never get to reclaim_lease() because
NFS4CLNT_LEASE_EXPIRED is never flagged.  Should we set
NFS4CLNT_LEASE_EXPIRED in nfs41_handle_cb_path_down()?  I think that would
have avoided this.

Ben
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux