irpc/tevent losing replies

Matthieu Patou mat at matws.net
Thu Jan 24 00:17:16 MST 2013


Hello

While working on DRS issues with andrew's branch I started to notice 
message like "IRPC callback failed for DsReplicaSync - NT_STATUS_IO_TIMEOUT"

To my understanding the internal RPC will call drepl_replica_sync when a 
DsReplicaSync RPC is received by the RPC server and when this function 
returns the internal RPC should returns too and via the magic of tevent 
the caller callback will be called informing it that the call is finished.

I started to trace and this is how it looks when everything is ok:
Receved a DsReplicaSync, using timeout 0, ts = 1359007798 (in RPC server)
IRPC send
Received valid dsreplicasync, starting analysis ts = 1359007798 (start 
of drepl_replica_sync)
Received valid dsreplicasync, schedule get nc changes ts = 1359007798 
(end of drepl_replica_sync)
dreplsrv_periodic_schedule(1) rescheduled for: Wed Jan 23 22:10:00 2013 PST
dreplsrv_periodic_schedule(300) scheduled for: Wed Jan 23 22:15:00 2013 PST
../source4/dsdb/samdb/ldb_modules/repl_meta_data.c:3583: Resolving 
conflict record via existing rename 'OU=Test Remote Rename Conflict 
3,DC=samba,DC=example,DC=com' -> '
OU=Test Remote Rename Conflict 
3\0ACNF:c44509f5-b471-48c8-bd8f-b9ff236de218,DC=samba,DC=example,DC=com'
Replicated 1 objects (0 linked attributes) for DC=samba,DC=example,DC=com
IRPC receive ts = 1359007799 (in RPC server)

And here is how it looks like when it goes wrong

Receved a DsReplicaSync, using timeout 30, ts = 1359007803
IRPC send
Received valid dsreplicasync, starting analysis ts = 1359007803
Received valid dsreplicasync, schedule get nc changes ts = 1359007803
dreplsrv_periodic_schedule(1) rescheduled for: Wed Jan 23 22:10:04 2013 PST
dreplsrv_periodic_schedule(300) scheduled for: Wed Jan 23 22:15:04 2013 PST
Replicated 0 objects (0 linked attributes) for DC=samba,DC=example,DC=com
Replicated 0 objects (0 linked attributes) for 
DC=ForestDnsZones,DC=samba,DC=example,DC=com
Replicated 0 objects (0 linked attributes) for 
DC=DomainDnsZones,DC=samba,DC=example,DC=com
Replicated 0 objects (0 linked attributes) for DC=samba,DC=example,DC=com
Replicated 0 objects (0 linked attributes) for 
CN=Schema,CN=Configuration,DC=samba,DC=example,DC=com
Replicated 1 objects (0 linked attributes) for 
CN=Configuration,DC=samba,DC=example,DC=com
dreplsrv_notify_schedule(5) scheduled for: Wed Jan 23 22:10:12 2013 PST
dreplsrv_notify_schedule(5) scheduled for: Wed Jan 23 22:10:17 2013 PST
dreplsrv_notify_schedule(5) scheduled for: Wed Jan 23 22:10:22 2013 PST
dreplsrv_notify_schedule(5) scheduled for: Wed Jan 23 22:10:27 2013 PST
dreplsrv_notify_schedule(5) scheduled for: Wed Jan 23 22:10:32 2013 PST
dreplsrv_notify_schedule(5) scheduled for: Wed Jan 23 22:10:37 2013 PST
IRPC receive ts = 1359007833
IRPC callback failed for DsReplicaSync - NT_STATUS_IO_TIMEOUT at 1359007833

The drepl_replica_sync returns quickly but somehow it seems that either 
the reply is not sent or it is lost, when I force the dc to be run in 
single mode (so that all the tasks are in the same process) the error 
message goes away.

Matthieu.


More information about the samba-technical mailing list