Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 358028

Summary: Enabling Locking Notifications leads to endless server requests
Product: [Modeling] EMF Reporter: Martin Fluegge <martin.fluegge>
Component: cdo.coreAssignee: Martin Fluegge <martin.fluegge>
Status: CLOSED FIXED QA Contact: Eike Stepper <stepper>
Severity: normal    
Priority: P3 CC: caspar_d
Version: 4.1   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Attachments:
Description Flags
Patch v1 none

Description Martin Fluegge CLA 2011-09-18 13:58:12 EDT
When enabling the locking notifications on a CDOView ( view.options().setLockNotificationEnabled(true)) leads to a neverending request loop. See server trace below

...
TCPSelector [debug.channel] Handling buffer from multiplexer: Buffer@52[GETTING] --> Channel[1, SERVER, cdo]
ReceiveSerializer-Channel[1, SERVER, cdo] [debug.signal] Received buffer for correlation 2917
ReceiveSerializer-Channel[1, SERVER, cdo] [debug.signal] Got signalID: 53
Thread-14 [debug.signal] ================ Indicating: Signal[protocol=cdo, id=53, name=EnableLockNotificationIndication, correlation=-2.917]
Thread-14 [debug.buffer] Retaining Buffer@52[RELEASED]
Thread-14 [debug.signal] ================ Responding: Signal[protocol=cdo, id=53, name=EnableLockNotificationIndication, correlation=-2.917]
Thread-14 [debug.buffer] Obtained Buffer@39[INITIAL]
Thread-14 [debug.channel] Handling buffer: Buffer@39[PUTTING] --> Channel[1, SERVER, cdo]
Thread-14 [debug] Ordering server operation INTEREST WRITE java.nio.channels.SocketChannel[connected local=/127.0.0.1:2036 remote=/127.0.0.1:2019] = true
TCPSelector [debug] Executing server operation INTEREST WRITE java.nio.channels.SocketChannel[connected local=/127.0.0.1:2036 remote=/127.0.0.1:2019] = true
TCPSelector [debug] Setting interest READ|WRITE (was read)
TCPSelector [debug] Writing java.nio.channels.SocketChannel[connected local=/127.0.0.1:2036 remote=/127.0.0.1:2019]
TCPSelector [debug.buffer] Writing 5 bytes (EOS)
00 00 0b 64 01 
TCPSelector [debug.buffer] Retaining Buffer@39[RELEASED]
TCPSelector [debug] Ordering server operation INTEREST WRITE java.nio.channels.SocketChannel[connected local=/127.0.0.1:2036 remote=/127.0.0.1:2019] = false
TCPSelector [debug] Executing server operation INTEREST WRITE java.nio.channels.SocketChannel[connected local=/127.0.0.1:2036 remote=/127.0.0.1:2019] = false
TCPSelector [debug] Setting interest READ (was read|write)
TCPSelector [debug] Reading java.nio.channels.SocketChannel[connected local=/127.0.0.1:2036 remote=/127.0.0.1:2019]
TCPSelector [debug.buffer] Obtained Buffer@52[INITIAL]
TCPSelector [debug.buffer] Read 11 bytes (EOS)
00 00 0b 66 00 35 00 00 00 02 01 
TCPSelector [debug.channel] Handling buffer from multiplexer: Buffer@52[GETTING] --> Channel[1, SERVER, cdo]
ReceiveSerializer-Channel[1, SERVER, cdo] [debug.signal] Received buffer for correlation 2918
ReceiveSerializer-Channel[1, SERVER, cdo] [debug.signal] Got signalID: 53
Thread-14 [debug.signal] ================ Indicating: Signal[protocol=cdo, id=53, name=EnableLockNotificationIndication, correlation=-2.918]
Thread-14 [debug.buffer] Retaining Buffer@52[RELEASED]
Thread-14 [debug.signal] ================ Responding: Signal[protocol=cdo, id=53, name=EnableLockNotificationIndication, correlation=-2.918]
Thread-14 [debug.buffer] Obtained Buffer@39[INITIAL]
Thread-14 [debug.channel] Handling buffer: Buffer@39[PUTTING] --> Channel[1, SERVER, cdo]
Thread-14 [debug] Ordering server operation INTEREST WRITE java.nio.channels.SocketChannel[connected local=/127.0.0.1:2036 remote=/127.0.0.1:2019] = true
TCPSelector [debug] Executing server operation INTEREST WRITE java.nio.channels.SocketChannel[connected local=/127.0.0.1:2036 remote=/127.0.0.1:2019] = true
TCPSelector [debug] Setting interest READ|WRITE (was read)
TCPSelector [debug] Writing java.nio.channels.SocketChannel[connected local=/127.0.0.1:2036 remote=/127.0.0.1:2019]
TCPSelector [debug.buffer] Writing 5 bytes (EOS)
00 00 0b 65 01 
TCPSelector [debug.buffer] Retaining Buffer@39[RELEASED]
TCPSelector [debug] Ordering server operation INTEREST WRITE java.nio.channels.SocketChannel[connected local=/127.0.0.1:2036 remote=/127.0.0.1:2019] = false
TCPSelector [debug] Executing server operation INTEREST WRITE java.nio.channels.SocketChannel[connected local=/127.0.0.1:2036 remote=/127.0.0.1:2019] = false
TCPSelector [debug] Setting interest READ (was read|write)
TCPSelector [debug] Reading java.nio.channels.SocketChannel[connected local=/127.0.0.1:2036 remote=/127.0.0.1:2019]
TCPSelector [debug.buffer] Obtained Buffer@52[INITIAL]
TCPSelector [debug.buffer] Read 11 bytes (EOS)
00 00 0b 67 00 35 00 00 00 02 01 
TCPSelector [debug.channel] Handling buffer from multiplexer: Buffer@52[GETTING] --> Channel[1, SERVER, cdo]
ReceiveSerializer-Channel[1, SERVER, cdo] [debug.signal] Received buffer for correlation 2919
ReceiveSerializer-Channel[1, SERVER, cdo] [debug.signal] Got signalID: 53
Thread-14 [debug.signal] ================ Indicating: Signal[protocol=cdo, id=53, name=EnableLockNotificationIndication, correlation=-2.919]
Thread-14 [debug.buffer] Retaining Buffer@52[RELEASED]
Thread-14 [debug.signal] ================ Responding: Signal[protocol=cdo, id=53, name=EnableLockNotificationIndication, correlation=-2.919]
Thread-14 [debug.buffer] Obtained Buffer@39[INITIAL]
Thread-14 [debug.channel] Handling buffer: Buffer@39[PUTTING] --> Channel[1, SERVER, cdo]
Thread-14 [debug] Ordering server operation INTEREST WRITE java.nio.channels.SocketChannel[connected local=/127.0.0.1:2036 remote=/127.0.0.1:2019] = true
TCPSelector [debug] Executing server operation INTEREST WRITE java.nio.channels.SocketChannel[connected local=/127.0.0.1:2036 remote=/127.0.0.1:2019] = true
TCPSelector [debug] Setting interest READ|WRITE (was read)
TCPSelector [debug] Writing java.nio.channels.SocketChannel[connected local=/127.0.0.1:2036 remote=/127.0.0.1:2019]
TCPSelector [debug.buffer] Writing 5 bytes (EOS)

...
Comment 1 Eike Stepper CLA 2011-09-18 14:02:51 EDT
Same root cause as in bug 357092.
Comment 2 Martin Fluegge CLA 2011-09-18 14:03:06 EDT
Created attachment 203556 [details]
Patch v1

The method "enableLockNotifications" was missing the termination after a successful enabling of the notifications.
Comment 3 Martin Fluegge CLA 2011-09-18 14:03:39 EDT
Committed revision 9165
Comment 4 Caspar D. CLA 2011-09-18 23:16:22 EDT
Thanks.
Comment 5 Martin Fluegge CLA 2011-09-19 12:35:09 EDT
np ;)
Comment 6 Eike Stepper CLA 2012-09-21 07:16:39 EDT
Closing.