rogchap/wombat

It will get stuck with some server

yswtrue opened this issue · 6 comments

like grpc server 3.114.33.194:50051
use reflection
and then choose com.lion.device.DeviceController
then wombat will hang, you can't do anything except exit.

Thanks for reporting @yswtrue

Are you able to provide an example proto definition that causes this?

Thanks for reporting @yswtrue

Are you able to provide an example proto definition that causes this?

it seems because I have changed the area field of Device message from string to Area, and then wombat will get stuck. And when I uninstall and reinstall, the problem disappears.


message Image {
    string id = 1;
    string created = 2;
    string modified = 3;
    bool is_removed = 4;
    string picture = 5;
}

message DefenseZone {
    string id = 1;
    string no = 2;
    string name = 3;
    string address = 4;
}

message Area {
    string id = 1;
    string created = 2;
    string modified = 3;
    bool is_removed = 4;
    string name = 5;
}

message Contact {
    string id = 1;
    string name = 2;
    string contact = 3;
    string contact_type = 4;
    string created = 5;
}

message Device {
    string id = 1;	// id
    string created = 2;	// created
    string modified = 3;	// modified
    string status = 4;	// status
    bool is_removed = 5;	// is removed
    string no = 6;	// 编号
    string name = 7;	// 商户名称
    string address = 8;	// 商户地址
    string location = 9;	// 地图定位
    string phone = 10;	// 固定电话
    string remark = 11;	// 备注
    int32 alarm_start = 12;	// 接收警情开始时间
    int32 alarm_end = 13;	// 接收警情结束时间
    string sn = 14;	// SN
    string ipsn = 15;	// IPSN
    string platform = 16;	// 报警平台
    string iot_card_number = 17;	// 物联卡号
    string iccid = 18;	// ICCID
    string iot_card_status = 19;	// 状态
    int32 iot_card_use_of_traffic = 20;	// 使用流量
    int32 iot_card_left_traffic = 21;	// 剩余流量
    string iot_card_start_date = 22;	// 物联卡生效时间
    string iot_card_end_date = 23;	// 物联卡到期时间
    string checkout_alarm_delay = 24;	// 出门报警延迟
    string checkin_alarm_delay = 25;	// 进入报警延迟
    int32 replay_time = 26;	// 警号/灯牌相应时间
    int32 alarm_volume = 27;	// 喇叭音量
    string light_output = 28;	// 灯牌输出
    string siren_output = 29;	// 警号输出
    string pgm1_name = 30;	// PGM1设备名称
    string pgm1_output_type = 31;	// PGM1设备输出模式
    string pgm2_name = 32;	// PGM2设备名称
    string pgm2_output_type = 33;	// PGM2设备输出模式
    string last_heartbeat = 34;	// 最后心跳时间
    string ip = 35;	// IP地址
    int32 port = 36;	// 端口
    int32 temperature = 37;	// 温度
    int32 battery = 38;	// 电量
    string password = 39;	// 主机密码
    Image picture = 40;
    Area area = 41;
    repeated Image showroom = 42;
    repeated string tags = 43;
    repeated Contact contacts = 44;
    repeated DefenseZone defense_zones = 45;
}

So if I understand correctly the steps to reproduce are:

  • Connection to server using Reflection API
  • Make a breaking change to the proto definition & restart server
  • Wombat freezes when selecting an API with a breaking change
  • only way to resolve is to restart Wombat

So if I understand correctly the steps to reproduce are:

  • Connection to server using Reflection API
  • Make a breaking change to the proto definition & restart server
  • Wombat freezes when selecting an API with a breaking change
  • only way to resolve is to restart Wombat

Yes, and have to reinstall Wombat or it will freeze when chose the same service.

As a workaround; rather than re-installing Wombat, have you tried going back to the "Workspace" and clicking "Connect" as this should refetch the schema from the server?

I have tried to reconnect but it not works for me.