Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Connecting core too slow? #15

Closed
miohtama opened this issue Mar 14, 2011 · 8 comments
Closed

Connecting core too slow? #15

miohtama opened this issue Mar 14, 2011 · 8 comments

Comments

@miohtama
Copy link

I have a core running craploads of IRC buffers. Looks like QuasselDroid (emulator) fails to get all the init data from the core, even after hard trying:

03-14 23:38:38.910: INFO/CoreConnection(411): Package reviced, reseting countdown
03-14 23:38:38.910: ERROR/CoreConnService(411): Getting message buffer already have
03-14 23:38:38.920: WARN/System.err(411): Slow parsing (2ms)!: Request type: Sync Class name:BacklogManager
03-14 23:38:38.950: INFO/System.out(411): Slow core is slow: 31ms
03-14 23:38:38.950: INFO/CoreConnection(411): Package reviced, reseting countdown
03-14 23:38:38.960: ERROR/CoreConnService(411): Getting message buffer already have
03-14 23:38:38.970: WARN/System.err(411): Slow parsing (10ms)!: Request type: Sync Class name:BacklogManager
03-14 23:38:39.010: INFO/System.out(411): Slow core is slow: 28ms
03-14 23:38:39.010: INFO/CoreConnection(411): Package reviced, reseting countdown
03-14 23:38:39.020: ERROR/CoreConnService(411): Getting message buffer already have
03-14 23:38:39.020: WARN/System.err(411): Slow parsing (6ms)!: Request type: Sync Class name:BacklogManager
03-14 23:38:39.060: INFO/System.out(411): Slow core is slow: 36ms
03-14 23:38:39.060: INFO/CoreConnection(411): Package reviced, reseting countdown
03-14 23:38:39.060: ERROR/CoreConnService(411): Getting message buffer already have
03-14 23:38:39.070: WARN/System.err(411): Slow parsing (5ms)!: Request type: Sync Class name:BacklogManager
03-14 23:38:39.100: INFO/System.out(411): Slow core is slow: 32ms
03-14 23:38:39.110: INFO/CoreConnection(411): Package reviced, reseting countdown
03-14 23:38:39.120: ERROR/CoreConnService(411): Getting message buffer already have
03-14 23:38:39.120: WARN/System.err(411): Slow parsing (5ms)!: Request type: Sync Class name:BacklogManager
03-14 23:38:39.160: INFO/System.out(411): Slow core is slow: 35ms
03-14 23:38:39.160: INFO/CoreConnection(411): Package reviced, reseting countdown
03-14 23:38:39.170: ERROR/CoreConnService(411): Getting message buffer already have
03-14 23:38:39.170: WARN/System.err(411): Slow parsing (5ms)!: Request type: Sync Class name:BacklogManager
03-14 23:38:40.140: DEBUG/dalvikvm(411): GC freed 9135 objects / 477720 bytes in 74ms
03-14 23:38:41.880: DEBUG/dalvikvm(411): GC freed 7266 objects / 398368 bytes in 113ms
03-14 23:38:43.880: DEBUG/dalvikvm(411): GC freed 7238 objects / 397864 bytes in 137ms
03-14 23:38:45.640: DEBUG/dalvikvm(411): GC freed 7226 objects / 397704 bytes in 84ms
03-14 23:38:47.170: DEBUG/dalvikvm(411): GC freed 7243 objects / 397904 bytes in 82ms
03-14 23:38:48.790: DEBUG/dalvikvm(411): GC freed 7257 objects / 398144 bytes in 84ms
03-14 23:38:50.450: DEBUG/dalvikvm(411): GC freed 7253 objects / 398368 bytes in 87ms
03-14 23:38:52.101: DEBUG/dalvikvm(411): GC freed 7729 objects / 424576 bytes in 93ms
03-14 23:38:54.610: DEBUG/dalvikvm(411): GC freed 8371 objects / 458512 bytes in 138ms
03-14 23:38:56.750: DEBUG/dalvikvm(411): GC freed 9028 objects / 494912 bytes in 104ms
03-14 23:38:59.160: DEBUG/dalvikvm(411): GC freed 9825 objects / 537120 bytes in 116ms
03-14 23:39:01.440: DEBUG/dalvikvm(411): GC freed 10463 objects / 576432 bytes in 151ms
03-14 23:39:03.760: DEBUG/dalvikvm(411): GC freed 11389 objects / 624912 bytes in 126ms
03-14 23:39:06.630: DEBUG/dalvikvm(411): GC freed 12270 objects / 675016 bytes in 123ms
03-14 23:39:09.170: INFO/CoreConnection(411): Timer finished, disconnection from core
03-14 23:39:09.190: WARN/System.err(411): IO error!
03-14 23:39:09.190: WARN/System.err(411): java.net.SocketException: Bad socket
03-14 23:39:09.200: WARN/System.err(411):     at org.apache.harmony.luni.platform.OSNetworkSystem.receiveStreamImpl(Native Method)
03-14 23:39:09.250: WARN/System.err(411):     at org.apache.harmony.luni.platform.OSNetworkSystem.receiveStream(OSNetworkSystem.java:478)
03-14 23:39:09.250: WARN/System.err(411):     at org.apache.harmony.luni.net.PlainSocketImpl.read(PlainSocketImpl.java:565)
03-14 23:39:09.250: WARN/System.err(411):     at org.apache.harmony.luni.net.SocketInputStream.read(SocketInputStream.java:87)
03-14 23:39:09.250: WARN/System.err(411):     at java.io.DataInputStream.readToBuff(DataInputStream.java:157)
03-14 23:39:09.250: WARN/System.err(411):     at java.io.DataInputStream.readInt(DataInputStream.java:285)
03-14 23:39:09.250: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.serializers.QInteger.unserialize(QInteger.java:24)
03-14 23:39:09.260: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.serializers.QInteger.unserialize(QInteger.java:1)
03-14 23:39:09.270: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.QVariant$QVariantSerializer.unserialize(QVariant.java:180)
03-14 23:39:09.270: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.QVariant$QVariantSerializer.unserialize(QVariant.java:1)
03-14 23:39:09.282: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.serializers.QMap.unserialize(QMap.java:48)
03-14 23:39:09.320: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.serializers.QMap.unserialize(QMap.java:1)
03-14 23:39:09.330: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.QVariant$QVariantSerializer.unserialize(QVariant.java:180)
03-14 23:39:09.330: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.QVariant$QVariantSerializer.unserialize(QVariant.java:1)
03-14 23:39:09.330: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.serializers.QMap.unserialize(QMap.java:48)
03-14 23:39:09.330: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.serializers.QMap.unserialize(QMap.java:1)
03-14 23:39:09.330: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.QVariant$QVariantSerializer.unserialize(QVariant.java:180)
03-14 23:39:09.340: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.QVariant$QVariantSerializer.unserialize(QVariant.java:1)
03-14 23:39:09.351: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.serializers.QMap.unserialize(QMap.java:48)
03-14 23:39:09.351: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.serializers.QMap.unserialize(QMap.java:1)
03-14 23:39:09.360: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.QVariant$QVariantSerializer.unserialize(QVariant.java:180)
03-14 23:39:09.390: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.QVariant$QVariantSerializer.unserialize(QVariant.java:1)
03-14 23:39:09.410: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.serializers.QMap.unserialize(QMap.java:48)
03-14 23:39:09.410: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.serializers.QMap.unserialize(QMap.java:1)
03-14 23:39:09.420: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.QVariant$QVariantSerializer.unserialize(QVariant.java:180)
03-14 23:39:09.430: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.QVariant$QVariantSerializer.unserialize(QVariant.java:1)
03-14 23:39:09.440: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.serializers.QList.unserialize(QList.java:36)
03-14 23:39:09.440: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.serializers.QList.unserialize(QList.java:1)
03-14 23:39:09.440: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.QVariant$QVariantSerializer.unserialize(QVariant.java:180)
03-14 23:39:09.460: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.QVariant$QVariantSerializer.unserialize(QVariant.java:1)
03-14 23:39:09.470: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.QMetaTypeRegistry.unserialize(QMetaTypeRegistry.java:172)
03-14 23:39:09.470: WARN/System.err(411):     at com.lekebilen.quasseldroid.qtcomm.QMetaTypeRegistry.unserialize(QMetaTypeRegistry.java:175)
03-14 23:39:09.480: WARN/System.err(411):     at com.lekebilen.quasseldroid.CoreConnection.readQVariantList(CoreConnection.java:805)
03-14 23:39:09.500: WARN/System.err(411):     at com.lekebilen.quasseldroid.CoreConnection.access$2(CoreConnection.java:803)
03-14 23:39:09.500: WARN/System.err(411):     at com.lekebilen.quasseldroid.CoreConnection$ReadThread.run(CoreConnection.java:463)

I assume it tries to load backbuffers and finally gives up after timeoutting?

@miohtama
Copy link
Author

Increased connection timeout from 30 -> 120 s. and got it connected. Also reduced backlog from 50 -> 5.

Very slow, though. Are there low hanging fruits to optimize in the parsing :)

@miohtama
Copy link
Author

Also looks like it is fetching all temporary closed chats too and channels where I have parted. Is there any kind of protocol level way to skip loading these?

@kenjiqq
Copy link
Collaborator

kenjiqq commented Mar 14, 2011

It times out because it didn't get any packages from the core for 30 sec, incresing the timout is not really a fix, as now it works for you, but someone with even more buffers might require even more time then 120. Already moved the timeout from 10 sec to 30 earlyer. Starting to think it isn't such a good ide to have the timeout at all really.

@kenjiqq
Copy link
Collaborator

kenjiqq commented Mar 14, 2011

Also the backlog from 50 to 5 i'm guessing you changed baclogFetchAmount, and that isn't used so it wont do anything. It only gets 1 backlog entry on each buffer on connect, just to know the last message id on each buffer

@Moult
Copy link

Moult commented Apr 19, 2011

Is there a way for an end-user to configure this, or do I have to grab the latest build as this value is hard coded?

@kenjiqq
Copy link
Collaborator

kenjiqq commented May 5, 2011

Its hard coded, at least for now

@kenjiqq
Copy link
Collaborator

kenjiqq commented May 15, 2011

Backlog fetching is using the preferences now. So does this problem still exist?

@kenjiqq
Copy link
Collaborator

kenjiqq commented May 25, 2011

Haven't seen this problem for a long time. And a lot is fixed after this so closing issue

@kenjiqq kenjiqq closed this as completed May 25, 2011
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants