WARNING: Server message without client id received

John, I had been receiving those messges and like you, traced the source to that block of code. I lack detailed insight, but the messages, now gone, seemed to be generated when I restricted the threads generated by a Tomcat connector. I had been interested in reducing the seemingly excessive number of threads/connectors used by Tomcat (8.0.30) and wondered if I could reduce thread management overhead by adjusting the maxConnections, maxThreads, minSpareThreads, connectonTimeout and acceptCount attributes. Well yes, the tweaking provided the inteneded thread/connector count reductions, but generated your messages as a side effect. Could it be that connections were terminated then respawned with the same connector number, but those new connections didn’t recognize the references in the client heartbeats? Dunno. But allowing the Tomcat’s default connector settings eliminated the Vaadin errors. I tried using APR, NIO and NIO2 connectors - didn’t seem to matter.

Hi Steve,

Thanks for the feedback. We are currently using the Tomcat defaults.

On your project were you using PUSH (vaadin-push)?

  • John

Yes, manual push with Websocket, Java 8 (latest), Tomcat 8.0.30, Vaadin 7.6.0. If I get a chance I will try re-create the problem - it may have been on a touchkit UI…

Steve,

We are using autmatic push:

@Push(value=PushMode.AUTOMATIC,transport=Transport.WEBSOCKET) Thanks for having a look.

  • John

I tried for an hour to reproduce the problem using a variety of Tomcat connector variations. Unable. John - do you use an optimized widgetset? If so, you might check the debug window for the 7.6 version of the eagerConnectors list. I made some changes to lists (standard and mobile) following the upgrade to Vaadin 7.6. Maybe that’s what eliminated the errors…

If anybody has an example project where this happens, I would be happy to take a look. I’m having a hard time seeing when this would happen (maybe I missed something obvious) because RPC from the client to the server do

payload.put(ApplicationConstants.SERVER_SYNC_ID, getMessageHandler() .getLastSeenServerSyncId()); payload.put(ApplicationConstants.CLIENT_TO_SERVER_ID, clientToServerMessageId++); In the example JSON I see in this thread, the SERVER_SYNC_ID (“syncId”) has been set but CLIENT_TO_SERVER_ID (“clientId”) has not been set. This should obviously not happen, unless you have an old widget set, as 7.5 only adds “syncId” and “clientId” is a new feature in 7.6

I had the problem too, also with push. The problem was that the widgetset-compile libraries weren’t updated to 7.6.0 in Eclipse. After resolving the jars again and recompiling the widgetset, the problem was solved.

Steve,

The project in question is not using an optimized widgetset.

  • John

Gerko,

Did you encounter a situation where your deployed application seemed to bundle both the 7.5.10 and 7.6.0 libraries?

  • John

John,

The default ivy libs were 7.6.0, but the widgetset-compile and the ivy nodeploy jars were 7.5.9.

Gerko

Gerko,

The multi-module maven project has been cleaned. The libraries all appear to be 7.6.0.

Here are the vaadin-specific libraries. Does anyone spot a conflict?

[INFO]
 --- maven-dependency-plugin:2.8:list (default-cli) @ venn-frontend-vaadin-poc ---
[INFO]
    com.vaadin:vaadin-testbench-api:jar:7.4.8:test
[INFO]
    com.vaadin:vaadin-client-compiler-deps:jar:1.2.0:provided
[INFO]
    com.vaadin:vaadin-testbench-core:jar:4.0.3:test
[INFO]
    com.vaadin:vaadin-push:jar:7.6.0:compile
[INFO]
    com.vaadin.external.atmosphere:atmosphere-runtime:jar:2.2.7.vaadin1:compile
[INFO]
    com.vaadin:vaadin-server:jar:7.6.0:compile
[INFO]
    com.vaadin:vaadin-themes:jar:7.6.0:compile
[INFO]
    com.vaadin:vaadin-sass-compiler:jar:0.9.13:compile
[INFO]
    com.vaadin:vaadin-client-compiler:jar:7.6.0:provided
[INFO]
    com.vaadin:vaadin-client:jar:7.6.0:provided
[INFO]
    com.vaadin.external.flute:flute:jar:1.3.0.gg2:compile
[INFO]
    com.vaadin:vaadin-testbench:jar:4.0.3:test
[INFO]
    com.vaadin.addon:vaadin-charts:jar:2.1.3:compile
[INFO]
    com.vaadin.external.streamhtmlparser:streamhtmlparser-jsilver:jar:0.0.10.vaadin1:compile
[INFO]
    org.vaadin.addon:confirmdialog:jar:2.1.3:compile
[INFO]
    com.vaadin.external.google:guava:jar:16.0.1.vaadin1:compile
[INFO]
    com.vaadin.external.slf4j:vaadin-slf4j-jdk14:jar:1.6.1:compile
[INFO]
    com.vaadin:vaadin-shared:jar:7.6.0:compile

Thanks in advance,

  • John

Check what the info tab in the ?debug window says, that will tell you what is really in use


Shows 7.5.8?

As I suspected, you need to fix that :slight_smile: Recompile your widget set using 7.6.0

Hmmm…even after running the following maven goals (see below) - still showing 7.5.8 in ?debug:

  • vaadin:update-widgetset
  • vaadin:compile

Try

mvn vaadin:compile -Dgwt.compiler.force=true

Otherwise, remove the widget set first (mvn clean vaadin:clean) and ensure the app does not start. Then run vaadin:compile again

Hello Artur,

I have attempted the recommended operations but still see "
Client engine version 7.5.8
" in the debug window.

mvn clean
mvn clean vaadin:clean vaadin:compile
mvn clean vaadin:clean vaadin:compile -Dgwt.compiler.force=true

Any suggestions?

Even after manually clearing Widgetset directories can see “var $gwt_version = "7.5.8"” in:

53CD41F41F6D8C3C83FB4A808EFD8C1A.cache.js
com.jgk.venn.frontend.vaadin.poc.PocWidgetSet.devmode.js

How is the $gwt_version set?

\

ok 7.6.0 up and running on the client :slight_smile:

John,
What was the magic incantation to finally get the client to show 7.6.0?
Thanks!

EDIT:
mvn vaadin:compile -Dgwt.compiler.force=true
worked for me the first time.