openthos / oto_external_lkp

2 stars 4 forks source link

androidx86和chroot后的ubuntu通信成功,但是不能阻塞 #2

Closed ELWIN-MAO closed 7 years ago

ELWIN-MAO commented 7 years ago

问题: chroot后的ubuntu,通过socket向androidx86发送命令,androidx86收到命令后执行对应的命令,并返回结果给chroot的ubuntu.

但是如果一个命令,androidx86执行需要5分钟,但是ubuntu发送命令却只需要几毫秒,ubuntu发送完命令后,不会阻塞5分钟,直到androidx86执行完命令,后才会继续执行下面的命令,而是发送完命令后,直接就执行下面的命令了。导致ubuntu和androidx86同步失败。

可能的解决方法: 在androidx86上面安装dropbear ssh,ubuntu通过ssh下达命令给androidx86,达到逐条命令阻塞顺序执行的目的。实现同步。

xyongcn commented 7 years ago

@薛海龙 请结合毛英明和韩辉的结果,给出一个测试用例。希望能在测试时,同时控制chroot中的monitor执行和android-x86下测试用例的执行,并收集测试结果和monitor的输入。

ELWIN-MAO commented 7 years ago

问题已经解决: 尝试过程:

  1. chroot ubuntu adb 连接 androidx86失败。【有可能adb 端口转发可以解决这个问题,但是本来一台机器2个进程间通信的问题,变成了2台机器3个进程间通信的问题,导致不稳定。】
  2. 通过 nc+shell通信的话,一次会话过后,shell进程会退出,导致不能多次连接会话。而且不能阻塞。
  3. 尝试在android上面安装dropbear,通过ssh无密码,远程执行命令。安装上了,但是问题很多,不好用。
  4. 最后折中选择了telnet+expect来实现带阻塞的通信协作。

不足的地方: 新增benchmark需要再编写expect脚本。