MetaMask 提交的交易一直处于Pending状态的解决方法

在以太坊链上测试一笔交易,由于设置的Max priority fee 与 Max fee偏低(都是1.5Gwei),交易一直牌Pending状态,过去一天了,也没有被成功打包到链上,仍然是Pending状态,如下图所示:

 MetaMask提供一种方法,可以取消这笔交易,按如下步骤操作:

1、开启  Customize transaction nonce 和 Advanced gas controls

(1) 点击”My Accounts“ 小图标 -> 选择Settings 

(2)点击 Advanced

(3)下拉找到 Advanced gas controls, 将状态设置为开启

(4)继续下拉找到 Customize transaction nonce, 将状态设置为开启

2、发送一笔交易

(1)查看Pending交易的Nonce值, 如下图所示:

(2)发起一笔交易

自己给自己的地址转账一点ETH,点击 Next

(3)此时出现 CUSTOM NONCE 文本框,填写刚刚查看到的交易为Pending状态的Nonce值

 (4)点击 EDIT,设置 gas,需要满足以下条件

  • Gas Limit 要大于等于Pending交易中的gas limit
  • Max priority fee 至少要提高为Pending交易中设置的Max priority fee 为10%(如,Pending为1.5, 至少为1.5 + 1.5 * 10% = 1.65)
  • Max fee 至少要提高为Pending交易中设置的Max fee 为30%

 

 (5)点击 Save, Confirm 提交

3、查看Pending中交易,状态已变为 Dropped & Replaced

原Pending的交易通过程序调用 eth_getTransactionReceipt 是查询不到的,在etherscan中能够看到,如下图所示:

 

参考文档:https://metamask.zendesk.com/hc/en-us/articles/360015489251-How-to-Speed-Up-or-Cancel-a-Pending-Transaction

### 解决 Kubernetes Pod Pending 状态并删除 Pod 当一个 Pod 处于 `Pending` 状态时,通常是因为资源不足或其他配置错误引起的。以下是可能的原因以及解决方案: #### 原因分析 1. **节点资源不足** 如果集群中的节点缺乏足够的 CPU 或内存来调度新的 Pod,则该 Pod 将保持在 `Pending` 状态[^1]。 2. **存储卷绑定失败** 当使用 PersistentVolumeClaim (PVC) 时,如果 PVC 的 StorageClass 不匹配或者无法找到合适的 PV 进行绑定,也会导致 Pod 待机[^3]。 3. **镜像拉取失败** 配置文件中指定的 Docker 镜像不存在或权限设置不当可能导致容器初始化失败,从而进入 `Pending` 状态[^4]。 4. **调度策略冲突** 自定义调度规则(如 NodeSelector、Taints 和 Tolerations)可能会阻止某些 Pods 被分配到任何可用节点上[^2]。 #### 查看具体原因 可以运行以下命令查看详细的事件日志以诊断问题所在: ```bash kubectl describe pod <pod-name> ``` 此操作返回的信息包括但不限于最后尝试启动的时间戳、失败消息等内容。 #### 删除处于 Pending 状态下的 Pod 即使 Pod 没有成功运行起来也可以通过如下方式将其移除掉: ```bash kubectl delete pod <pod-name> --grace-period=0 --force ``` 上述指令利用了 `--force` 参数即时终止目标实例而不考虑优雅关闭周期,默认情况下后者为 30 秒超时期限。 另外需要注意的是,在实际环境中应谨慎对待强制性动作以免影响业务连续性和数据一致性。 ### 示例脚本 下面给出一段简单的 Bash Shell 脚本来自动化查找所有 stuck 在 pending phase 上面的对象并且清理它们。 ```bash #!/bin/bash for ns in $(kubectl get namespaces -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}'); do for p in $(kubectl get pods -n $ns --field-selector=status.phase==Pending -o custom-columns=:metadata.name --no-headers);do echo Deleting pod "$p" from namespace "$ns" kubectl delete pod -n $ns $p --grace-period=0 --force; done done ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值