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

Intermittent server error when joining chat room #59

Closed
alalonde opened this issue Jan 9, 2020 · 19 comments
Closed

Intermittent server error when joining chat room #59

alalonde opened this issue Jan 9, 2020 · 19 comments
Assignees
Labels
bug Something isn't working server Issues related to the server
Milestone

Comments

@alalonde
Copy link
Contributor

alalonde commented Jan 9, 2020

Versions

  • Convergence Version: [e.g. 1.0.0]

client: @convergence/convergence 1.0.0-rc.4
server: convergencelabs/convergence-omnibus

Describe the Bug
When connecting to some chat room, the following error occurs and connecting fails.

Error: A request timeout occurred.

Once an error occurs, the same error will occur 100% from any client, when connecting the chat room. There may be a problem with our implementation, but once this occurs, even if another client can not connect to the same chat room, we suspect that it is a convergence server side problem.

Step To Reproduce
WE are not sure exactly how to reproduce the issue. Here is our example code:

domain.chat().create({
  id: SOME_ID,          
  type: "room",          
  membership: "public",          
  ignoreExistsError: true        
})        
.then(chatId => {         
   return domain.chat().join(chatId); // <= Time out occurs in this statement        
})        
.then(room => {        
  // // Subsequent processing        
})
@alalonde alalonde added the bug Something isn't working label Jan 9, 2020
@alalonde
Copy link
Contributor Author

alalonde commented Jan 9, 2020

Are there any server error logs? A timeout such as this usually indicates an uncaught exception on the server.

@hdyngd
Copy link

hdyngd commented Jan 10, 2020

@alalonde

Thanks for opening the issue.
This error log is output when failed to joining chat room, and is output by log4j2.

04:27:45 ERROR ChatClientActor - Unexpected error processing chat request JoinChannelRequest(DomainId(convergence,local),296,DomainUserSessionId(3k,DomainUserId(normal,37)),Actor[akka://Convergence/user/$l/$d#85616480])
akka.pattern.AskTimeoutException: Ask timed out on [Actor[akka://Convergence/system/sharding/ChatChannelShardRegion#-1128765377]] after [10000 ms]. Message of type [com.convergencelabs.convergence.server.domain.chat.ChatMessages$JoinChannelRequest] was sent by [Actor[akka://Convergence/user/$l/$d#85616480]]. A typical reason for `AskTimeoutException` is that the recipient actor didn't send a reply.
	at akka.pattern.PromiseActorRef$.$anonfun$defaultOnTimeout$1(AskSupport.scala:648) ~[com.typesafe.akka.akka-actor_2.12-2.5.25.jar:2.5.25]
	at akka.pattern.PromiseActorRef$.$anonfun$apply$1(AskSupport.scala:669) ~[com.typesafe.akka.akka-actor_2.12-2.5.25.jar:2.5.25]
	at akka.actor.Scheduler$$anon$4.run(Scheduler.scala:202) ~[com.typesafe.akka.akka-actor_2.12-2.5.25.jar:2.5.25]
	at scala.concurrent.Future$InternalCallbackExecutor$.unbatchedExecute(Future.scala:875) ~[org.scala-lang.scala-library-2.12.10.jar:?]
	at scala.concurrent.BatchingExecutor.execute(BatchingExecutor.scala:113) ~[org.scala-lang.scala-library-2.12.10.jar:?]
	at scala.concurrent.BatchingExecutor.execute$(BatchingExecutor.scala:107) ~[org.scala-lang.scala-library-2.12.10.jar:?]
	at scala.concurrent.Future$InternalCallbackExecutor$.execute(Future.scala:873) ~[org.scala-lang.scala-library-2.12.10.jar:?]
	at akka.actor.LightArrayRevolverScheduler$TaskHolder.executeTask(LightArrayRevolverScheduler.scala:334) ~[com.typesafe.akka.akka-actor_2.12-2.5.25.jar:2.5.25]
	at akka.actor.LightArrayRevolverScheduler$$anon$3.executeBucket$1(LightArrayRevolverScheduler.scala:285) ~[com.typesafe.akka.akka-actor_2.12-2.5.25.jar:2.5.25]
	at akka.actor.LightArrayRevolverScheduler$$anon$3.nextTick(LightArrayRevolverScheduler.scala:289) ~[com.typesafe.akka.akka-actor_2.12-2.5.25.jar:2.5.25]
	at akka.actor.LightArrayRevolverScheduler$$anon$3.run(LightArrayRevolverScheduler.scala:241) ~[com.typesafe.akka.akka-actor_2.12-2.5.25.jar:2.5.25]
	at java.lang.Thread.run(Thread.java:835) ~[?:?]

Is this what you requested?

Please contact us if you need any other information.
Also, it would be helpful if you could give me the necessary operations to get the information.

@mmacfadden
Copy link
Contributor

@hdyngd Thanks for the server log. This is definitely part of the problem. We can see here the the server is asking the Chat system to join the chat room, and that the chat room is not responding. Therefore the server does not respond to the client, and you receive the timeout message.

When this happens, it is typically the case that there is an earlier error that has some how corrupted the chat room. There is typically a ChatActor per chat room on the server side. The ChatActor is responsible for handling the messages from the ChatClientActor. If the ChatActor gets into a bad state, it may stop responding to ChatClientActor requests.

The error that you copied here is part of the symptom. The cause is that either the ChatActor has died, or it is in a bad state. Usually this would be caused by some "original" error. The error would not be displayed each time a user tries to join. It would probably show up just before the first time the error you are seeing comes up. So the error is probably further back in the log.

If you can identify the steps to reproduce the behavior, or if you can find another error in the log before this one, it would be very helpful.

In the mean time, we are trying to replicate the error.

@mmacfadden mmacfadden self-assigned this Jan 10, 2020
@hdyngd
Copy link

hdyngd commented Jan 10, 2020

@mmacfadden Thanks for the detailed explanation.
This is all logs that can be obtained.

$ sudo docker start -a convergence-omnibus
2020-01-10 15:27:33,574 INFO Set uid to user 0 succeeded
2020-01-10 15:27:33,577 INFO supervisord started with pid 1
2020-01-10 15:27:34,580 INFO spawned: 'proxy' with pid 7
2020-01-10 15:27:34,582 INFO spawned: 'convergence' with pid 8
2020-01-10 15:27:34,584 INFO spawned: 'orientdb' with pid 9
           .                                          
          .`        `                                 
          ,      `:.                                  
         `,`    ,:`                                   
         .,.   :,,                                    
         .,,  ,,,                                     
    .    .,.:::::  ````                                 :::::::::     :::::::::   
    ,`   .::,,,,::.,,,,,,`;;                      .:    ::::::::::    :::    :::  
    `,.  ::,,,,,,,:.,,.`  `                       .:    :::      :::  :::     ::: 
     ,,:,:,,,,,,,,::.   `        `         ``     .:    :::      :::  :::     ::: 
      ,,:.,,,,,,,,,: `::, ,,   ::,::`   : :,::`  ::::   :::      :::  :::    :::  
       ,:,,,,,,,,,,::,:   ,,  :.    :   ::    :   .:    :::      :::  :::::::     
        :,,,,,,,,,,:,::   ,,  :      :  :     :   .:    :::      :::  :::::::::   
  `     :,,,,,,,,,,:,::,  ,, .::::::::  :     :   .:    :::      :::  :::     ::: 
  `,...,,:,,,,,,,,,: .:,. ,, ,,         :     :   .:    :::      :::  :::     ::: 
    .,,,,::,,,,,,,:  `: , ,,  :     `   :     :   .:    :::      :::  :::     ::: 
      ...,::,,,,::.. `:  .,,  :,    :   :     :   .:    :::::::::::   :::     ::: 
           ,::::,,,. `:   ,,   :::::    :     :   .:    :::::::::     ::::::::::  
           ,,:` `,,.                                  
          ,,,    .,`                                  
         ,,.     `,                                              VELOCE  
       ``        `.                                                          
                 ``                                       www.orientdb.com
                 `                                    
removing old pid file /orientdb/bin/orient.pid
2020-01-10 15:27:35,620 INFO success: proxy entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2020-01-10 15:27:35,621 INFO success: convergence entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2020-01-10 15:27:35,621 INFO success: orientdb entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
Warning: Nashorn engine is planned to be removed from a future JDK release

2020-01-10 15:27:37:377 INFO  Detected limit of amount of simultaneously open files is 4096,  limit of open files for disk cache will be set to 1536 [ONative]
2020-01-10 15:27:37:379 WARNI Value of limit of simultaneously open files is too small, recommended value is 262144 [ONative]
2020-01-10 15:27:37:451 INFO  Loading configuration from: /orientdb/config/orientdb-server-config.xml... [OServerConfigurationLoaderXml]WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.sun.xml.bind.v2.runtime.reflect.opt.Injector (file:/orientdb/lib/jaxb-impl-2.3.0.1.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int)
WARNING: Please consider reporting this to the maintainers of com.sun.xml.bind.v2.runtime.reflect.opt.Injector
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
15:27:42 INFO  ConvergenceServer$ - Using baseConfig file: /convergence-server/etc/convergence-server.conf
15:27:43 INFO  ConvergenceServer - Convergence Server (1.0.0-rc.4) starting up...
15:27:44 WARN  AutoDown - Don't use auto-down feature of Akka Cluster in production. See 'Auto-downing (DO NOT USE)' section of Akka Cluster documentation.
15:27:45 INFO  ConvergenceServer - Convergence Server Roles: backend, realtimeApi, restApi
15:27:45 INFO  ConvergenceServer - Role 'backend' detected, activating Backend Services...
15:27:45 INFO  ConvergenceInitializer - auto-install is configured, attempting to connect to the database to determine if the convergence database is installed.
15:27:45 INFO  ConvergenceInitializer - Attempting to connect to the database at uri: remote:127.0.0.1:2424
15:27:46 WARN  SystemErr - Warning: Nashorn engine is planned to be removed from a future JDK release
15:27:46 WARN  SystemErr - Jan 10, 2020 3:27:46 PM com.orientechnologies.common.log.OLogManager log
INFO: Detected limit of amount of simultaneously open files is 4096,  limit of open files for disk cache will be set to 1536

15:27:46 WARN  SystemErr - Jan 10, 2020 3:27:46 PM com.orientechnologies.common.log.OLogManager log
WARNING: Value of limit of simultaneously open files is too small, recommended value is 262144

15:27:46 INFO  ConvergenceInitializer - Connected to database with Server Admin
15:27:46 INFO  ConvergenceInitializer - Checking for Convergence database
15:27:46 INFO  ConvergenceInitializer - Convergence database already exists.
15:27:48 INFO  BackendServices - Convergence Backend Services starting up...
15:27:49 INFO  BackendServices - Convergence Backend Services started up.
15:27:49 INFO  ConvergenceServer - Role 'restApi' detected, activating REST API...
15:27:51 INFO  ConvergenceServer - Role 'realtimeApi' detected, activating the Realtime API...
15:27:51 INFO  ConvergenceRestApi - Rest API started at: http://0.0.0.0:8081
15:27:51 INFO  ConvergenceRealtimeApi - Realtime API started at: http://0.0.0.0:8080
Warning: Nashorn engine is planned to be removed from a future JDK release
Warning: Nashorn engine is planned to be removed from a future JDK release
Warning: Nashorn engine is planned to be removed from a future JDK release
Warning: Nashorn engine is planned to be removed from a future JDK release
15:29:17 ERROR ChatClientActor - Unexpected error processing chat request JoinChannelRequest(DomainId(convergence,local),308,DomainUserSessionId(3o,DomainUserId(normal,37)),Actor[akka://Convergence/user/$e/$d#-665252961])
akka.pattern.AskTimeoutException: Ask timed out on [Actor[akka://Convergence/system/sharding/ChatChannelShardRegion#-796110456]] after [10000 ms]. Message of type [com.convergencelabs.convergence.server.domain.chat.ChatMessages$JoinChannelRequest] was sent by [Actor[akka://Convergence/user/$e/$d#-665252961]]. A typical reason for `AskTimeoutException` is that the recipient actor didn't send a reply.
	at akka.pattern.PromiseActorRef$.$anonfun$defaultOnTimeout$1(AskSupport.scala:648) ~[com.typesafe.akka.akka-actor_2.12-2.5.25.jar:2.5.25]
	at akka.pattern.PromiseActorRef$.$anonfun$apply$1(AskSupport.scala:669) ~[com.typesafe.akka.akka-actor_2.12-2.5.25.jar:2.5.25]
	at akka.actor.Scheduler$$anon$4.run(Scheduler.scala:202) ~[com.typesafe.akka.akka-actor_2.12-2.5.25.jar:2.5.25]
	at scala.concurrent.Future$InternalCallbackExecutor$.unbatchedExecute(Future.scala:875) ~[org.scala-lang.scala-library-2.12.10.jar:?]
	at scala.concurrent.BatchingExecutor.execute(BatchingExecutor.scala:113) ~[org.scala-lang.scala-library-2.12.10.jar:?]
	at scala.concurrent.BatchingExecutor.execute$(BatchingExecutor.scala:107) ~[org.scala-lang.scala-library-2.12.10.jar:?]
	at scala.concurrent.Future$InternalCallbackExecutor$.execute(Future.scala:873) ~[org.scala-lang.scala-library-2.12.10.jar:?]
	at akka.actor.LightArrayRevolverScheduler$TaskHolder.executeTask(LightArrayRevolverScheduler.scala:334) ~[com.typesafe.akka.akka-actor_2.12-2.5.25.jar:2.5.25]
	at akka.actor.LightArrayRevolverScheduler$$anon$3.executeBucket$1(LightArrayRevolverScheduler.scala:285) ~[com.typesafe.akka.akka-actor_2.12-2.5.25.jar:2.5.25]
	at akka.actor.LightArrayRevolverScheduler$$anon$3.nextTick(LightArrayRevolverScheduler.scala:289) ~[com.typesafe.akka.akka-actor_2.12-2.5.25.jar:2.5.25]
	at akka.actor.LightArrayRevolverScheduler$$anon$3.run(LightArrayRevolverScheduler.scala:241) ~[com.typesafe.akka.akka-actor_2.12-2.5.25.jar:2.5.25]
	at java.lang.Thread.run(Thread.java:835) ~[?:?]

[Procedure accompanying this log output]

  1. Start docker container.
    $ sudo docker start -a convergence-omnibus
  2. Create and join chatroom.
  3. Leave chat room.
    Running domain.dispose(); on the client side.
  4. Attempt to rejoin the chat room.
    A timeout error has occurred and I cannot rejoin.

Is there any information you were looking for in this?
Thanks for the investigation.

@mmacfadden
Copy link
Contributor

@hdyngd Thanks for the logs. A few more questions.

Is the room you are joining an existing chat room that was previously created?

If the the answer to 1 is yes, then if you create a new chat room can you join?

Were you able to join the chat room ever? If so did it then break at some point in time?

@hdyngd
Copy link

hdyngd commented Jan 10, 2020

@mmacfadden Thanks for the question.

  1. Is the room you are joining an existing chat room that was previously created?

-> No. This chat room was first created.

  1. Were you able to join the chat room ever? If so did it then break at some point in time?

-> I can join immediately after creation. And it works fine. However, when you try to rejoin, you may be able to join successfully, or you may get a timeout error. It works fine if you can rejoin. If a timeout error occurs, no one can join forever. Operations and data are exactly the same whether they succeed or fail. So I don't know why the timeout error occurs.

And this may be unnecessary information, but I also use real time models in addition to chatroom. Do you notice anything about this?

@mmacfadden
Copy link
Contributor

@hdyngd Thanks for the additional information. We are continuing to look into the issue. A few more questions:

  1. Are you authenticating using JWT, Username / Password, or Anonymously?

  2. When the chat room issue comes up, do the other functions still work? Meaning can you still open models, join other chat rooms, etc?

  3. For the chat room that doesn't work, are you able to see it in the admin console: http://localhost:8000/console/domain/convergence/default/chats/

  4. If so, if you delete it from the admin console, does the script then work again?

@mmacfadden
Copy link
Contributor

We performed the following test:

We ran the docker container like this:

docker run -p "8000:80" --name convergence convergencelabs/convergence-omnibus

Then we created the following script.

const chatId = "test-chat-id";
const domainUrl = "ws://localhost:8000/api/realtime/convergence/default";
const displayName = "test user";
const timeout = 2000;
let iterations = 1;

Convergence.connectAnonymously(domainUrl, displayName).then(async (domain) => {
  while (true) {
    await joinAndLeave(domain);
    await new Promise(resolve => setTimeout(resolve, timeout));
  }
});

async function joinAndLeave(domain) {
  console.log("Iteration " + iterations++);

  return domain.chat()
    .create({
      id: chatId,
      type: "room",
      membership: "public",
      ignoreExistsError: true
    })
    .then(channelId => {
      console.log(`Channel Created: ${channelId}`);
      return domain.chat().join(chatId);
    })
    .then((channel) => {
      console.log("Channel Joined");
      return channel.leave();
    })
    .then(() => {
      console.log("Channel Left");
    });
}

We let this run for a couple hundred iterations, and did not see an error. We are wondering if you can run this script on a fresh run of the system and see if it works. If it breaks, can you provide the log from the server side.

@hdyngd
Copy link

hdyngd commented Jan 13, 2020

@mmacfadden Thanks for the continuing to look into the issue. I'll answer the question.

  1. Are you authenticating using JWT, Username / Password, or Anonymously?

-> We using JWT.

  1. When the chat room issue comes up, do the other functions still work? Meaning can you still open models, join other chat rooms, etc?

-> Yes. When the chat room issue comes up, I can open models, join another chat room, or create a new chat room.

  1. For the chat room that doesn't work, are you able to see it in the admin console: http://localhost:8000/console/domain/convergence/default/chats/

-> Yes. I can see it.
(There may be a bug where chatroom shows only 11 lines. No matter which domain you check, no more than 11 lines are displayed.)

  1. If so, if you delete it from the admin console, does the script then work again?

-> I can't delete. An error will be displayed if you try to do so. Could Not Delete Chat The chat could not be deleted. And the server log is output.

[Error log when deleting chatroom]

13:52:49 ERROR ConvergenceRestApi - Error handling REST call: http://127.0.0.1:8081/domains/convergence/local/chats/312
akka.pattern.AskTimeoutException: Ask timed out on [Actor[akka://Convergence/system/sharding/ChatChannelShardRegion#259443650]] after [20000 ms]. Message of type [com.convergencelabs.convergence.server.domain.chat.ChatMessages$RemoveChatlRequest]. A typical reason for `AskTimeoutException` is that the recipient actor didn't send a reply.
	at akka.pattern.PromiseActorRef$.$anonfun$defaultOnTimeout$1(AskSupport.scala:648) ~[com.typesafe.akka.akka-actor_2.12-2.5.25.jar:2.5.25]
	at akka.pattern.PromiseActorRef$.$anonfun$apply$1(AskSupport.scala:669) ~[com.typesafe.akka.akka-actor_2.12-2.5.25.jar:2.5.25]
	at akka.actor.Scheduler$$anon$4.run(Scheduler.scala:202) ~[com.typesafe.akka.akka-actor_2.12-2.5.25.jar:2.5.25]
	at scala.concurrent.Future$InternalCallbackExecutor$.unbatchedExecute(Future.scala:875) ~[org.scala-lang.scala-library-2.12.10.jar:?]
	at scala.concurrent.BatchingExecutor.execute(BatchingExecutor.scala:113) ~[org.scala-lang.scala-library-2.12.10.jar:?]
	at scala.concurrent.BatchingExecutor.execute$(BatchingExecutor.scala:107) ~[org.scala-lang.scala-library-2.12.10.jar:?]
	at scala.concurrent.Future$InternalCallbackExecutor$.execute(Future.scala:873) ~[org.scala-lang.scala-library-2.12.10.jar:?]
	at akka.actor.LightArrayRevolverScheduler$TaskHolder.executeTask(LightArrayRevolverScheduler.scala:334) ~[com.typesafe.akka.akka-actor_2.12-2.5.25.jar:2.5.25]
	at akka.actor.LightArrayRevolverScheduler$$anon$3.executeBucket$1(LightArrayRevolverScheduler.scala:285) ~[com.typesafe.akka.akka-actor_2.12-2.5.25.jar:2.5.25]
	at akka.actor.LightArrayRevolverScheduler$$anon$3.nextTick(LightArrayRevolverScheduler.scala:289) ~[com.typesafe.akka.akka-actor_2.12-2.5.25.jar:2.5.25]
	at akka.actor.LightArrayRevolverScheduler$$anon$3.run(LightArrayRevolverScheduler.scala:241) ~[com.typesafe.akka.akka-actor_2.12-2.5.25.jar:2.5.25]
	at java.lang.Thread.run(Thread.java:835) ~[?:?]

(This is additional information.)
After restarting docker container, the chatroom that did not work will work. But again, it stops working as well.

@hdyngd
Copy link

hdyngd commented Jan 13, 2020

@mmacfadden We did the same test.

const chatId = "test-chat-id";
const domainUrl = "ws://localhost:8000/api/realtime/convergence/default";
const displayName = "test user";
const timeout = 2000;
let iterations = 1;

Convergence.connectAnonymously(domainUrl, displayName).then(async (domain) => {
  while (true) {
    await joinAndLeave(domain);
    await new Promise(resolve => setTimeout(resolve, timeout));
  }
});

async function joinAndLeave(domain) {
  console.log("Iteration " + iterations++);

  return domain.chat()
    .create({
      id: chatId,
      type: "room",
      membership: "public",
      ignoreExistsError: true
    })
    .then(channelId => {
      console.log(`Channel Created: ${channelId}`);
      return domain.chat().join(chatId);
    })
    .then((channel) => {
      console.log("Channel Joined");
      return channel.leave();
    })
    .then(() => {
      console.log("Channel Left");
    });
}

The result was the same, with no errors. But this script is a little different from my implementation. So, I fixed to be closer to my implementation.

[fixed script]

const chatId = "test-chat-id";
const domainUrl = "ws://localhost:8000/api/realtime/convergence/default";
const displayName = "test user";
const timeout = 2000;
let iterations = 1;

Convergence.connectAnonymously(domainUrl, displayName).then(
  async domain => {
    const reconnectToken = domain.session().reconnectToken();
    domain.dispose();
    let i = 0;
    while (i <= 300) {
      await joinAndLeave(reconnectToken);
      await new Promise(resolve => setTimeout(resolve, timeout));
      i++;
    }
  }
);

async function joinAndLeave(reconnectToken) {
  console.log("Iteration " + iterations++);
  let domain = null;
  return Convergence.reconnect(domainUrl, reconnectToken)
    .then(dom => {
      domain = dom;
      return domain.chat().create({
        id: chatId,
        type: "room",
        membership: "public",
        ignoreExistsError: true
      });
    })
    .then(channelId => {
      console.log(`Channel Created: ${channelId}`);
      return domain.chat().join(chatId);
    })
    .then(() => {
      console.log("Channel Joined");
      return domain.dispose();
    })
    .then(() => {
      console.log("Channel Left");
    });
}

This will reproduce it.

This is a guess,,, but may be due to not explicitly executing channel.leave(); . I Modify to explicitly execute channel.leave(); when leaving chatroom.

@mmacfadden
Copy link
Contributor

@hdyngd thanks. I believe we are getting closer. For some additional details. Each ChatRoom has a persistent ChatActor in the system that manages joining, leaving, sending messages, etc. it starts up when the first message goes to the chat room. After the last person leaves the chat room it will shut down.

If that ChatActor somehow gets into a bad state, it is possible that it will then refuse I come requests. If the server is restarted then all ChatActors would shut down and you would likely be able to join again until the issue comes up again. Your experience suggests that this is what is happening. If I can use your script to replicate the issue we should be able to fix the issue quickly.

Also, I will check the admin console and see if we have a bug to fix there for listing the chat rooms. If there is I will open another issue.

We have an upcoming release very soon that we can get these fixes into with in the next few days if we come to a solution.

@hdyngd
Copy link

hdyngd commented Jan 17, 2020

@mmacfadden Thanks for the detailed explanation. This is a report just in case.

Timeout error didn't occur when explicitly executing channel.leave();. However, if you disconnect the browser directly, there is no certainty that the executing of channel.leave ();. I'm worried that this will break the ChatActors.

If possible, I'd like you to continue your investigation.

@mmacfadden
Copy link
Contributor

@hdyngd We were able to reproduce the issue using the script you have provided. It doesn't ALWAYS happen, but it happens enough where we think we can figure out the root cause. We are continuing to work on a fix. I hope to have something figured out in the next few days. This is one of two critical bugs that we are focusing on right now. So this is definitely a priority for us.

Thanks for following up. We will post more info back he in the next day or so.

mmacfadden added a commit to convergencelabs/convergence-server that referenced this issue Jan 18, 2020
@mmacfadden mmacfadden added this to the 1.0.0-rc.5 milestone Jan 18, 2020
@mmacfadden mmacfadden added the server Issues related to the server label Jan 18, 2020
@mmacfadden
Copy link
Contributor

@hdyngd I think we have made some progress on a fix. We are going to release another version to see if it fixes your problem. It is possible that we have not fixed the issue. But it seems to be working for us.

One other question:

(There may be a bug where chatroom shows only 11 lines. No matter which domain you check, no more than 11 lines are displayed.)

Is this in the Admin Console web interface? If so, if you have more that 10 chats, there should be a pagination control at the bottom of the table. Is that not working for you?

chat-pagniation

@hdyngd
Copy link

hdyngd commented Jan 18, 2020

@mmacfadden We thank you a lot for your effort. We will check fix it if another version is released.

(There may be a bug where chatroom shows only 11 lines. No matter which domain you check, no more than 11 lines are displayed.)

This is described in more detail. Here is a screenshot of our admin console.

[page1]
名称未設定

[page2]
名称未設定2

As you can see, only 11 lines are displayed, including 10 lines on page1 and 1 line on page2. However, there are actually more chat rooms. If you delete one chatroom, the hidden chatroom will be newly displayed. No more than 11 lines are displayed.

@mmacfadden
Copy link
Contributor

We created a separate issue for the admin console bug. #73

@mmacfadden
Copy link
Contributor

This should be fixed.

@hdyngd
Copy link

hdyngd commented Jan 21, 2020

@mmacfadden We tried 1.0.0-rc.5 and it worked. No timeout error occurs. Thank you very much!!

@mmacfadden
Copy link
Contributor

@hdyngd Great!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working server Issues related to the server
Projects
None yet
Development

No branches or pull requests

3 participants