谷歌Unchecked runtime.lastError: The message port closed before a response was received.错误导致请求重发

6 篇文章 0 订阅
3 篇文章 0 订阅

现象:最新项目有个奇怪的现象,就是一个请求会被执行2次,只收到一次返回结果。

模拟场景如下:一个存钱交易,存100,能收到200,部分代码(是一个dubbo服务)

	@Reference(retries=0, timeout = 50000)
    private AccountService accountService;

    @GetMapping("/deposit/{uid}")
    public String deposit(@PathVariable("uid") Long uid) {
        String amount = "100";

        // 检查用户是否有账户
        Account account = accountService.selectByUid(uid);
        BigDecimal balance = BigDecimal.ZERO;
        if (account == null) {
            logger.info(">>>>>>>>>>>>>>> deposit input = " + uid + ", " + amount + ", account = " + account);
            balance = new BigDecimal(amount);
            accountService.bindAccount(new Account(uid, "622588201365148" + uid, balance));
        } else {
            logger.info(">>>>>>>>>>>>>>> deposit input = " + uid + ", " + amount + ", account = " + account);
            BigDecimal old = account.getBalance();
            balance = old.add(new BigDecimal(amount));
            account.setBalance(balance);
            accountService.bindAccount(account);
        }

        return "存入成功,目前余额为" + accountService.selectByUid(uid).getBalance();
    }

请求如下(每次存100),返回的余额结果看是100,300,500,很奇怪,如下图
在这里插入图片描述
查看后台,可以看到每一次请求都被执行了2次

2019-11-25 09:20:22.142  INFO 7516 --- [io-8083-exec-10] com.nacos.demo.api.DepositController     : >>>>>>>>>>>>>>> deposit input = 1, 100, account = Account{uid=1, accountNo='6225885012650355', balance=0.00}
2019-11-25 09:20:22.207  INFO 7516 --- [nio-8083-exec-2] com.nacos.demo.api.DepositController     : >>>>>>>>>>>>>>> deposit input = 1, 100, account = Account{uid=1, accountNo='6225885012650355', balance=100.00}

2019-11-25 09:20:23.230  INFO 7516 --- [nio-8083-exec-1] com.nacos.demo.api.DepositController     : >>>>>>>>>>>>>>> deposit input = 1, 100, account = Account{uid=1, accountNo='6225885012650355', balance=200.00}
2019-11-25 09:20:23.261  INFO 7516 --- [nio-8083-exec-3] com.nacos.demo.api.DepositController     : >>>>>>>>>>>>>>> deposit input = 1, 100, account = Account{uid=1, accountNo='6225885012650355', balance=300.00}

2019-11-25 09:20:24.157  INFO 7516 --- [nio-8083-exec-4] com.nacos.demo.api.DepositController     : >>>>>>>>>>>>>>> deposit input = 1, 100, account = Account{uid=1, accountNo='6225885012650355', balance=400.00}
2019-11-25 09:20:24.186  INFO 7516 --- [nio-8083-exec-5] com.nacos.demo.api.DepositController     : >>>>>>>>>>>>>>> deposit input = 1, 100, account = Account{uid=1, accountNo='6225885012650355', balance=500.00}

2019-11-25 09:20:24.958  INFO 7516 --- [nio-8083-exec-6] com.nacos.demo.api.DepositController     : >>>>>>>>>>>>>>> deposit input = 1, 100, account = Account{uid=1, accountNo='6225885012650355', balance=600.00}
2019-11-25 09:20:24.986  INFO 7516 --- [nio-8083-exec-8] com.nacos.demo.api.DepositController     : >>>>>>>>>>>>>>> deposit input = 1, 100, account = Account{uid=1, accountNo='6225885012650355', balance=700.00}

2019-11-25 09:20:25.693  INFO 7516 --- [nio-8083-exec-7] com.nacos.demo.api.DepositController     : >>>>>>>>>>>>>>> deposit input = 1, 100, account = Account{uid=1, accountNo='6225885012650355', balance=800.00}
2019-11-25 09:20:25.724  INFO 7516 --- [nio-8083-exec-9] com.nacos.demo.api.DepositController     : >>>>>>>>>>>>>>> deposit input = 1, 100, account = Account{uid=1, accountNo='6225885012650355', balance=900.00}

查了很久的原因都没找到,然后打开谷歌调试窗口,发现了一行错误Unchecked runtime.lastError: The message port closed before a response was received
在这里插入图片描述
然后google和百度了,说是扩展插件有问题,我就装了一个json插件
在这里插入图片描述

解决方法:把有问题的扩展插件禁用即可,如果有很多插件的,可以逐个排查。

在这里插入图片描述
关闭有问题的插件后请求就正常了,如下图
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值