| Issue 608: | Gerrit hangs when trying to navigate with keys ('g' then 'o') to All Open Changes | |
| 1 person starred this issue and may be notified of changes. | Back to list |
Gerrit hangs when trying to navigate with keys ('g' then 'o') to All Open Changes
Affected Version:
2.1.4-SNAPSHOT
What steps will reproduce the problem?
1. go to 'All merged changes' screen
2. press 'g' then 'o'
What is the expected output? What do you see instead?
It is expected that the 'All open changes' screen is opened, instead of this Gerrit hangs.
Please provide any additional information below.
When I say that Gerrit hangs I mean that the browser Window is not reacting anymore. At the same time I can see on server side a hanging Thread.
The problem occurs with Firefox as well as with Internet Explorer.
For me the problem can be almost always reproduced, only with Internet Explorer the navigation succeeded once or twice.
Firefox:
Daemon Thread [Code server for gerrit from Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4 (.NET CLR 3.5.30729) on http://127.0.0.1:8888/?gwt.codesvr=127.0.0.1:9997 @ {$~'+T=S3TY!.u*!] (Suspended)
SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int) line: not available [native method]
SocketInputStream.read(byte[], int, int) line: 129
BufferedInputStream.fill() line: 218
BufferedInputStream.read() line: 237
DataInputStream.readByte() line: 248
BrowserChannel$Message.readMessageType(DataInputStream) line: 1131
BrowserChannelServer(BrowserChannel).reactToMessagesWhileWaitingForReturn(BrowserChannel$SessionHandler) line: 1702
BrowserChannelServer.invokeJavascript(CompilingClassLoader, JsValueOOPHM, String, JsValueOOPHM[], JsValueOOPHM) line: 165
ModuleSpaceOOPHM.doInvoke(String, Object, Class<?>[], Object[]) line: 120
ModuleSpaceOOPHM(ModuleSpace).invokeNative(String, Object, Class<?>[], Object[]) line: 507
ModuleSpaceOOPHM(ModuleSpace).invokeNativeObject(String, Object, Class<?>[], Object[]) line: 264
JavaScriptHost.invokeNativeObject(String, Object, Class<?>[], Object[]) line: 91
Node$.getOwnerDocument$(Node) line: not available
DOMImplMozilla.getAbsoluteTop(Element) line: 61
Element$.getAbsoluteTop$(Element) line: 166
AllSingleListScreen$1(NavigationTable<RowItem>).ensurePointerVisible() line: 114
NavigationTable$OpenKeyCommand.onKeyPress(KeyPressEvent) line: 292
KeyCommandSet.onKeyPress(KeyPressEvent) line: 116
GlobalKey$2.onKeyPress(KeyPressEvent) line: 55
KeyPressEvent.dispatch(KeyPressHandler) line: 70
KeyPressEvent.dispatch(EventHandler) line: 1
HandlerManager$HandlerRegistry.fireEvent(GwtEvent<H>, boolean) line: 65
HandlerManager$HandlerRegistry.access$1(HandlerManager$HandlerRegistry, GwtEvent, boolean) line: 53
HandlerManager.fireEvent(GwtEvent<?>) line: 178
DocWidget(Widget).fireEvent(GwtEvent<?>) line: 52
DomEvent<H>.fireNativeEvent(NativeEvent, HasHandlers, Element) line: 116
DocWidget(Widget).onBrowserEvent(Event) line: 100
DOM.dispatchEventImpl(Event, Element, EventListener) line: 1307
DOM.dispatchEvent(Event, Element, EventListener) line: 1263
NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]
NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25
Method.invoke(Object, Object...) line: 597
MethodAdaptor.invoke(Object, Object...) line: 103
MethodDispatch.invoke(JsValue, JsValue[], JsValue) line: 71
OophmSessionHandler.invoke(BrowserChannel, BrowserChannel$Value, int, BrowserChannel$Value[]) line: 157
BrowserChannelServer(BrowserChannel).reactToMessagesWhileWaitingForReturn(BrowserChannel$SessionHandler) line: 1713
BrowserChannelServer.invokeJavascript(CompilingClassLoader, JsValueOOPHM, String, JsValueOOPHM[], JsValueOOPHM) line: 165
ModuleSpaceOOPHM.doInvoke(String, Object, Class<?>[], Object[]) line: 120
ModuleSpaceOOPHM(ModuleSpace).invokeNative(String, Object, Class<?>[], Object[]) line: 507
ModuleSpaceOOPHM(ModuleSpace).invokeNativeObject(String, Object, Class<?>[], Object[]) line: 264
JavaScriptHost.invokeNativeObject(String, Object, Class<?>[], Object[]) line: 91
Impl.apply(Object, Object, Object) line: not available
Impl.entry0(Object, Object, Object) line: 188
GeneratedMethodAccessor25.invoke(Object, Object[]) line: not available
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25
Method.invoke(Object, Object...) line: 597
MethodAdaptor.invoke(Object, Object...) line: 103
MethodDispatch.invoke(JsValue, JsValue[], JsValue) line: 71
OophmSessionHandler.invoke(BrowserChannel, BrowserChannel$Value, int, BrowserChannel$Value[]) line: 157
BrowserChannelServer(BrowserChannel).reactToMessages(BrowserChannel$SessionHandler) line: 1668
BrowserChannelServer.processConnection() line: 401
BrowserChannelServer.run() line: 222
Thread.run() line: 679
If Firefox is closed/killed the Thread that was hanging in Gerrit is released.
Internet Explorer:
Daemon Thread [Code server for gerrit from Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2) on http://127.0.0.1:8888/?gwt.codesvr=127.0.0.1:9997#all,open,n,z @ 'MD5#MF#*sP.*K\9] (Suspended)
SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int) line: not available [native method]
SocketInputStream.read(byte[], int, int) line: 129
BufferedInputStream.fill() line: 218
BufferedInputStream.read() line: 237
DataInputStream.readByte() line: 248
BrowserChannel$Message.readMessageType(DataInputStream) line: 1131
BrowserChannelServer(BrowserChannel).reactToMessagesWhileWaitingForReturn(BrowserChannel$SessionHandler) line: 1702
BrowserChannelServer.invokeJavascript(CompilingClassLoader, JsValueOOPHM, String, JsValueOOPHM[], JsValueOOPHM) line: 165
ModuleSpaceOOPHM.doInvoke(String, Object, Class<?>[], Object[]) line: 120
ModuleSpaceOOPHM(ModuleSpace).invokeNative(String, Object, Class<?>[], Object[]) line: 507
ModuleSpaceOOPHM(ModuleSpace).invokeNativeObject(String, Object, Class<?>[], Object[]) line: 264
JavaScriptHost.invokeNativeObject(String, Object, Class<?>[], Object[]) line: 91
DOMImplIE6(DOMImpl).getParentElement(Node) line: not available
Node$.getParentElement$(Node) line: 184
DOM.getParent(Element) line: 892
ChangeTable(NavigationTable<RowItem>).ensurePointerVisible() line: 113
NavigationTable$OpenKeyCommand.onKeyPress(KeyPressEvent) line: 292
KeyCommandSet.onKeyPress(KeyPressEvent) line: 116
GlobalKey$2.onKeyPress(KeyPressEvent) line: 55
KeyPressEvent.dispatch(KeyPressHandler) line: 70
KeyPressEvent.dispatch(EventHandler) line: 1
HandlerManager$HandlerRegistry.fireEvent(GwtEvent<H>, boolean) line: 65
HandlerManager$HandlerRegistry.access$1(HandlerManager$HandlerRegistry, GwtEvent, boolean) line: 53
HandlerManager.fireEvent(GwtEvent<?>) line: 178
DocWidget(Widget).fireEvent(GwtEvent<?>) line: 52
DomEvent<H>.fireNativeEvent(NativeEvent, HasHandlers, Element) line: 116
DocWidget(Widget).onBrowserEvent(Event) line: 100
DOM.dispatchEventImpl(Event, Element, EventListener) line: 1307
DOM.dispatchEvent(Event, Element, EventListener) line: 1263
GeneratedMethodAccessor63.invoke(Object, Object[]) line: not available
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25
Method.invoke(Object, Object...) line: 597
MethodAdaptor.invoke(Object, Object...) line: 103
MethodDispatch.invoke(JsValue, JsValue[], JsValue) line: 71
OophmSessionHandler.invoke(BrowserChannel, BrowserChannel$Value, int, BrowserChannel$Value[]) line: 157
BrowserChannelServer(BrowserChannel).reactToMessagesWhileWaitingForReturn(BrowserChannel$SessionHandler) line: 1713
BrowserChannelServer.invokeJavascript(CompilingClassLoader, JsValueOOPHM, String, JsValueOOPHM[], JsValueOOPHM) line: 165
ModuleSpaceOOPHM.doInvoke(String, Object, Class<?>[], Object[]) line: 120
ModuleSpaceOOPHM(ModuleSpace).invokeNative(String, Object, Class<?>[], Object[]) line: 507
ModuleSpaceOOPHM(ModuleSpace).invokeNativeObject(String, Object, Class<?>[], Object[]) line: 264
JavaScriptHost.invokeNativeObject(String, Object, Class<?>[], Object[]) line: 91
Impl.apply(Object, Object, Object) line: not available
Impl.entry0(Object, Object, Object) line: 188
GeneratedMethodAccessor57.invoke(Object, Object[]) line: not available
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25
Method.invoke(Object, Object...) line: 597
MethodAdaptor.invoke(Object, Object...) line: 103
MethodDispatch.invoke(JsValue, JsValue[], JsValue) line: 71
OophmSessionHandler.invoke(BrowserChannel, BrowserChannel$Value, int, BrowserChannel$Value[]) line: 157
BrowserChannelServer(BrowserChannel).reactToMessages(BrowserChannel$SessionHandler) line: 1668
BrowserChannelServer.processConnection() line: 401
BrowserChannelServer.run() line: 222
Thread.run() line: 679
For me the Internet Exploror detects after some while that there is a slow running script and asks if it should be aborted. If abort is accepted the browser comes back to life however the Thread in Gerrit is still hanging.
Jun 23, 2010
Project Member
#1
edwin.ke...@gmail.com
Jun 24, 2010
This is the GWT hosted mode debugger, which is doing some really weird stuff with the JS event processing in the browser in order to run Java code during a JavaScript event. I'm almost not surprised something broke here. I'm not likely to spend time trying to track it down. The 'g-then-o' code works by scheduling a timer for 250 milliseconds that captures following keystrokes looking for the 'o' match. If one isn't received, its supposed to reset the keyboard to the root level map. What is probably occurring here is the timer gets stuck somewhere between the browser code and the Java backend that is running the emulated UI, and the whole thing just deadlocks. More than likely this is a bug in Google Web Tookit. Just don't use 'g-then-o' in hosted debug mode; if you need to test that stuff compile to JavaScript and run under the real Gerrit daemon, without the GWT hosted mode browser hacks.
Status:
WontFix
|
|
| ► Sign in to add a comment |