vaadin / kubernetes-kit

Other
3 stars 3 forks source link

Debug Tool runs into timeouts #125

Closed MichaelPluessErni closed 6 months ago

MichaelPluessErni commented 6 months ago

Error description:

After 30 seconds, the debug tool runs into timeouts on views that have slightly higher complexity: Session serialization attempt finished in 30003 ms with outcomes: [SERIALIZATION_TIMEOUT]

Increasing the timeout to 60s did not make a difference. This issue might be related to: https://github.com/vaadin/kubernetes-kit/issues/103

Expected behaviour:

The debug tool should not get stuck. Without the debug tool, this issue is not present, meaning that when running the session serialization on the productive cloud, the session serializes quickly.

Details:

This happens in many different views with slightly increased complexity. It does not happen on the simplest views eg. login view. Here I tested the debug tool on a view that displays articles in a list when searching for the product name.

When enabling trace logging, the log is filled with those lines (almost endlessly) repeating:

2024-04-09T15:24:58.659+02:00 TRACE 21216 --- [alizer-worker-1] [                                                 ] .s.TransientInjectableObjectOutputStream : Serializing object class com.vaadin.kubernetes.starter.sessiontracker.serialization.debug.Track
2024-04-09T15:24:58.659+02:00 TRACE 21216 --- [alizer-worker-1] [                                                 ] .s.TransientInjectableObjectOutputStream : No injectable transient fields found for instance of class class com.vaadin.kubernetes.starter.sessiontracker.serialization.debug.Track
2024-04-09T15:24:58.659+02:00 TRACE 21216 --- [alizer-worker-1] [                                                 ] .s.TransientInjectableObjectOutputStream : Serializing object class java.lang.String
2024-04-09T15:24:58.660+02:00 TRACE 21216 --- [alizer-worker-1] [                                                 ] .s.TransientInjectableObjectOutputStream : Serializing object class com.vaadin.kubernetes.starter.sessiontracker.serialization.debug.Track
2024-04-09T15:24:58.660+02:00 TRACE 21216 --- [alizer-worker-1] [                                                 ] .s.TransientInjectableObjectOutputStream : No injectable transient fields found for instance of class class com.vaadin.kubernetes.starter.sessiontracker.serialization.debug.Track
2024-04-09T15:24:58.660+02:00 TRACE 21216 --- [alizer-worker-1] [                                                 ] .s.TransientInjectableObjectOutputStream : Serializing object class java.lang.String
2024-04-09T15:24:58.660+02:00 TRACE 21216 --- [alizer-worker-1] [                                                 ] .s.TransientInjectableObjectOutputStream : Serializing object class com.vaadin.kubernetes.starter.sessiontracker.serialization.debug.Track
2024-04-09T15:24:58.660+02:00 TRACE 21216 --- [alizer-worker-1] [                                                 ] .s.TransientInjectableObjectOutputStream : No injectable transient fields found for instance of class class com.vaadin.kubernetes.starter.sessiontracker.serialization.debug.Track
2024-04-09T15:24:58.660+02:00 TRACE 21216 --- [alizer-worker-1] [                                                 ] .s.TransientInjectableObjectOutputStream : Serializing object class java.lang.String
2024-04-09T15:24:58.660+02:00 TRACE 21216 --- [alizer-worker-1] [                                                 ] .s.TransientInjectableObjectOutputStream : Serializing object class com.vaadin.kubernetes.starter.sessiontracker.serialization.debug.Track
2024-04-09T15:24:58.660+02:00 TRACE 21216 --- [alizer-worker-1] [                                                 ] .s.TransientInjectableObjectOutputStream : No injectable transient fields found for instance of class class com.vaadin.kubernetes.starter.sessiontracker.serialization.debug.Track
2024-04-09T15:24:58.660+02:00 TRACE 21216 --- [alizer-worker-1] [                                                 ] .s.TransientInjectableObjectOutputStream : Serializing object class java.lang.String

The debug serializer seems to be stuck in a loop here.

mcollovati commented 6 months ago

Actually, this is not a loop, but the debug tool is inspecting the Track object for injectable transient fields, that is definitely not needed. Given that every serialized object is tracked, this operation may take a long time the session/UI contains a huge number of components and data.