小编alo*_*ana的帖子

连接到 ECR 的 AWS Batch 超时

我在运行 AWS 批处理作业时收到以下错误:

ResourceInitializationError:无法提取机密或注册表身份验证:执行资源检索失败:无法检索 ecr 注册表身份验证:服务调用已重试 3 次:RequestError:发送请求失败,原因是:发布 https://api.ecr。 us-east-1.amazonaws.com/:拨打 tcp 54.239.19.155:443:i/o 超时

我正在为 AWS 批量计算环境使用 Fargate 选项。

我的 VPC 包含一个具有“自动分配公共 IPv4 地址”的子网、一个互联网网关和一个匹配的路由表。我认为这可能是我的 VPC 中的问题,因此为了验证这一点,我在 VPC 中启动了一个新的 EC2 实例,并在 EC2 实例中运行curl 到https://api.ecr.us-east-1 .amazonaws.com。卷曲可以毫无问题地连接。

可能是什么问题呢?

amazon-ecs aws-batch

7
推荐指数
1
解决办法
5079
查看次数

docker 上的未知 blob 推送到 gcp

我有一个在 GCP 云构建上运行的 CI/CD 构建系统。它在码头推送时偶尔会失败,并出现错误:“未知的斑点”(见下文)。重新运行失败的作业以成功结果结束。

CI/CD 是一个运行 shell 脚本的 Google CloudBuild 作业。shell 脚本运行 docker build,然后运行 ​​docker Push,因此构建后的镜像在本地可用。

docker build -f Dockerfile -t gcr.io/XXX/YYY/ZZZ/test:latest-stage1
docker push gcr.io/XXX/YYY/ZZZ/test:latest-stage1
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?也许我可以添加一些额外的命令来打印一些调试信息以供下次发生?

Pushing image gcr.io/XXX/YYY/ZZZ/test:latest-stage1
The push refers to repository [gcr.io/XXX/YYY/ZZZ/test]
4eed37762d61: Preparing
a68d95ff11ea: Preparing
dddcf18e7786: Preparing
e8c437b49d31: Preparing
dea41e2ed72f: Preparing
b660dabbb08d: Preparing
3434e68efd32: Preparing
efc45381b778: Preparing
0902cfca6c4f: Preparing
66f4f21514da: Preparing
9e27e8abe53b: Preparing
7b5ae180667a: Preparing
613ab28cf833: Preparing
bed676ceab7a: Preparing
6398d5cccd2c: Preparing
0b0f2f2f5279: Preparing
b660dabbb08d: Waiting
3434e68efd32: Waiting
efc45381b778: Waiting
0902cfca6c4f: Waiting
66f4f21514da: Waiting
9e27e8abe53b: Waiting …
Run Code Online (Sandbox Code Playgroud)

docker google-cloud-platform

5
推荐指数
0
解决办法
2892
查看次数

为什么竞态检测器在这里报告竞态条件?

我正在使用 Go 竞争检测(-race 参数),它检测到一些我认为不应该报告的竞争条件问题。我创建了这个示例代码来解释我的发现。请不要对此示例的目标发表评论,因为它除了解释问题之外没有其他目标。

这段代码:

var count int

func main() {
    go update()
    for {
        fmt.Println(count)
        time.Sleep(time.Second)
    }
}

func update() {
    for {
        time.Sleep(time.Second)
        count++
    }
}
Run Code Online (Sandbox Code Playgroud)

报告有竞争条件。

虽然这段代码:

var count int
var mutex sync.RWMutex

func main() {
    go update()
    for {
        mutex.RLock()
        fmt.Println(count)
        mutex.RUnlock()
        time.Sleep(time.Second)
    }
}

func update(){
    for {
        time.Sleep(time.Second)
        mutex.Lock()
        count++
        mutex.Unlock()
    }
}
Run Code Online (Sandbox Code Playgroud)

没有报告任何竞争条件问题。

我的问题是为什么?第一个代码中没有错误。main 函数正在读取另一个 go 例程正在更新的变量。这里没有潜在的隐藏错误。第二个代码互斥锁不提供任何不同的行为。

我哪里错了?

synchronization mutex global-variables go race-condition

-2
推荐指数
1
解决办法
104
查看次数