title: Deadlock: property mode in keylock resource-list differs from owner-list mode
body: <p>I have been working with some deadlocks situations in our application recently and have a new case which seems odd to me. The error log displays this (without execution stacks which doesn't matter at this time I believe):</p>
  
  <pre><code>deadlock-list
    deadlock victim=process84db88
     process-list
      process id=process84db88 taskpriority=0 logused=0 waitresource=KEY: 11:72057594409844736 (8194443284a0) waittime=4685 ownerId=3632385974 transactionname=SELECT lasttranstarted=2011-12-07T16:21:16.287 XDES=0x32f68fca0 lockMode=S schedulerid=6 kpid=6392 status=suspended spid=93 sbid=0 ecid=0 priority=0 trancount=0 lastbatchstarted=2011-12-07T16:21:16.287 lastbatchcompleted=2011-12-07T16:21:16.287 clientapp=.Net SqlClient Data Provider hostname=DE-1809 hostpid=4156 loginname=XXX isolationlevel=read committed (2) xactid=3632385974 currentdb=11 lockTimeout=4294967295 clientoption1=671088672 clientoption2=128056
       executionStack
        ........   
      process id=process47bdc8 taskpriority=0 logused=240604 waitresource=KEY: 11:72057594409844736 (829df5d1e88e) waittime=4681 ownerId=3632397262 transactionname=UPDATE lasttranstarted=2011-12-07T16:21:26.100 XDES=0x2f00b93c0 lockMode=X schedulerid=1 kpid=6568 status=suspended spid=88 sbid=0 ecid=0 priority=0 trancount=2 lastbatchstarted=2011-12-07T16:21:25.640 lastbatchcompleted=2011-12-07T16:21:25.640 clientapp=.Net SqlClient Data Provider hostname=DE-1809 hostpid=4156 loginname=XXX isolationlevel=read committed (2) xactid=3632397262 currentdb=11 lockTimeout=4294967295 clientoption1=673316896 clientoption2=128056
       executionStack
        .........  
     resource-list
      keylock hobtid=72057594409844736 dbid=11 objectname=dbo.OurTable indexname=PK_OurTable id=lock1d9aa0b00 mode=X associatedObjectId=72057594409844736
       owner-list
        owner id=process47bdc8 mode=X
       waiter-list
        waiter id=process84db88 mode=S requestType=wait
      keylock hobtid=72057594409844736 dbid=11 objectname=dbo.OurTable indexname=PK_OurTable id=lock1a56cb580 mode=U associatedObjectId=72057594409844736
       owner-list
        owner id=process84db88 mode=S
       waiter-list
        waiter id=process47bdc8 mode=X requestType=convert
  </code></pre>
  
  <p>The lock is happening on a key in the same clustered index in one of our tables. What confuses me a little bit is the mode in the last keylock row in the resource-list.</p>
  
  <p>It says: <strong>mode=U</strong> while the owner in the corresponding owner-list says: <strong>mode=S</strong>.</p>
  
  <p>How should I read this? These two modes are usually the same. How can these modes differ?</p>