go-sigma / sigma

OCI-Native artifact manager
https://docs.sigma.tosone.cn
Apache License 2.0
114 stars 9 forks source link

从1.2.0-13-gfd1110e升级到1.3后,docker push收到500错误 #377

Open Sokwva opened 1 week ago

Sokwva commented 1 week ago
xxz@ctrbulk:~/projects/ft-parkingsys-token-svc$ docker push 192.168.1.20:31177/library/parkingsys-token-svc
Using default tag: latest
The push refers to repository [192.168.1.20:31177/library/parkingsys-token-svc]
4925b5804d85: Layer already exists
4176f1244bd4: Layer already exists
02f2bcb26af5: Layer already exists
received unexpected HTTP status: 500 Internal Server Error
2024-06-22 08:15:05 DBG server/server.go:70 Request debugger method=GET path=/v2/ query=
2024-06-22 08:15:05 DBG server/server.go:70 Request debugger method=GET path=/api/v1/tokens query=account=sigma&scope=repository%3Alibrary%2Fparkingsys-token-svc%3Apush%2Cpull&service=sigma
2024-06-22 08:15:05 DBG logger/glog.go:97 call=middlewares/auth.go:89 elapsed=2.655326ms rows=1 sql="SELECT * FROM `users` WHERE `users`.`username` = \"sigma\" AND `users`.`deleted_at` = 0 ORDER BY `users`.`id` LIMIT 1"
2024-06-22 08:15:05 DBG logger/glog.go:97 call=middlewares/auth.go:141 elapsed=1.944457ms rows=1 sql="SELECT * FROM `users` WHERE `users`.`id` = 3 AND `users`.`deleted_at` = 0 ORDER BY `users`.`id` LIMIT 1"
2024-06-22 08:15:05 DBG server/server.go:70 Request debugger method=HEAD path=/v2/library/parkingsys-token-svc/blobs/sha256:23e0fd4b7e01c55cdc055c7a5accd468474be196973036aac46800165f1ed9c7 query=
2024-06-22T16:15:05.390344579+08:00 2024-06-22 08:15:05 DBG server/server.go:70 Request debugger method=HEAD path=/v2/library/parkingsys-token-svc/blobs/sha256:d25f557d7f31bf7acfac935859b5153da41d13c41f2b468d16f729a5b883634f query=
2024-06-22T16:15:05.390428743+08:00 2024-06-22 08:15:05 DBG server/server.go:70 Request debugger method=HEAD path=/v2/library/parkingsys-token-svc/blobs/sha256:a7475582620d2846bce52ea4c2de0fcdff28709415118c2f85e6de40e6434351 query=
2024-06-22 08:15:05 DBG logger/glog.go:97 call=middlewares/auth.go:141 elapsed=1.66313ms rows=1 sql="SELECT * FROM `users` WHERE `users`.`id` = 3 AND `users`.`deleted_at` = 0 ORDER BY `users`.`id` LIMIT 1"
2024-06-22T16:15:05.392977274+08:00 2024-06-22 08:15:05 DBG logger/glog.go:97 call=middlewares/auth.go:141 elapsed=1.603292ms rows=1 sql="SELECT * FROM `users` WHERE `users`.`id` = 3 AND `users`.`deleted_at` = 0 ORDER BY `users`.`id` LIMIT 1"
2024-06-22 08:15:05 DBG logger/glog.go:97 call=middlewares/auth.go:141 elapsed=1.847752ms rows=1 sql="SELECT * FROM `users` WHERE `users`.`id` = 3 AND `users`.`deleted_at` = 0 ORDER BY `users`.`id` LIMIT 1"
2024-06-22 08:15:05 DBG logger/glog.go:97 call=blob/blob_head.go:61 elapsed=1.312583ms rows=1 sql="SELECT * FROM `namespaces` WHERE `namespaces`.`name` = \"library\" AND `namespaces`.`deleted_at` = 0 ORDER BY `namespaces`.`id` LIMIT 1"
2024-06-22 08:15:05 DBG logger/glog.go:97 call=blob/handler.go:147 elapsed="183.919µs" rows=1 sql="SELECT * FROM `blobs` WHERE `blobs`.`digest` = \"sha256:d25f557d7f31bf7acfac935859b5153da41d13c41f2b468d16f729a5b883634f\" AND `blobs`.`deleted_at` = 0 ORDER BY `blobs`.`id` LIMIT 1"
2024-06-22T16:15:05.395001161+08:00 2024-06-22 08:15:05 DBG logger/glog.go:97 call=blob/blob_head.go:61 elapsed=1.915356ms rows=1 sql="SELECT * FROM `namespaces` WHERE `namespaces`.`name` = \"library\" AND `namespaces`.`deleted_at` = 0 ORDER BY `namespaces`.`id` LIMIT 1"
2024-06-22 08:15:05 DBG logger/glog.go:97 call=blob/blob_head.go:61 elapsed=2.409897ms rows=1 sql="SELECT * FROM `namespaces` WHERE `namespaces`.`name` = \"library\" AND `namespaces`.`deleted_at` = 0 ORDER BY `namespaces`.`id` LIMIT 1"
2024-06-22 08:15:05 DBG logger/glog.go:97 call=blob/handler.go:147 elapsed=2.651111ms rows=1 sql="SELECT * FROM `blobs` WHERE `blobs`.`digest` = \"sha256:a7475582620d2846bce52ea4c2de0fcdff28709415118c2f85e6de40e6434351\" AND `blobs`.`deleted_at` = 0 ORDER BY `blobs`.`id` LIMIT 1"
2024-06-22 08:15:05 DBG logger/glog.go:97 call=blob/handler.go:147 elapsed=3.428863ms rows=1 sql="SELECT * FROM `blobs` WHERE `blobs`.`digest` = \"sha256:23e0fd4b7e01c55cdc055c7a5accd468474be196973036aac46800165f1ed9c7\" AND `blobs`.`deleted_at` = 0 ORDER BY `blobs`.`id` LIMIT 1"
2024-06-22 08:15:05 DBG server/server.go:70 Request debugger method=HEAD path=/v2/library/parkingsys-token-svc/blobs/sha256:0f13bb82259f5a6b0dc96d6c9dcb5ef712a5b78d212ace7cf46e304671be0367 query=
2024-06-22 08:15:05 DBG logger/glog.go:97 call=middlewares/auth.go:141 elapsed=1.719769ms rows=1 sql="SELECT * FROM `users` WHERE `users`.`id` = 3 AND `users`.`deleted_at` = 0 ORDER BY `users`.`id` LIMIT 1"
2024-06-22 08:15:05 DBG logger/glog.go:97 call=blob/blob_head.go:61 elapsed=1.827105ms rows=1 sql="SELECT * FROM `namespaces` WHERE `namespaces`.`name` = \"library\" AND `namespaces`.`deleted_at` = 0 ORDER BY `namespaces`.`id` LIMIT 1"
2024-06-22 08:15:05 DBG logger/glog.go:97 call=blob/handler.go:147 elapsed=1.757171ms rows=1 sql="SELECT * FROM `blobs` WHERE `blobs`.`digest` = \"sha256:0f13bb82259f5a6b0dc96d6c9dcb5ef712a5b78d212ace7cf46e304671be0367\" AND `blobs`.`deleted_at` = 0 ORDER BY `blobs`.`id` LIMIT 1"
2024-06-22 08:15:05 DBG server/server.go:70 Request debugger method=PUT path=/v2/library/parkingsys-token-svc/manifests/latest query=
2024-06-22 08:15:05 DBG logger/glog.go:97 call=middlewares/auth.go:141 elapsed=1.579016ms rows=1 sql="SELECT * FROM `users` WHERE `users`.`id` = 3 AND `users`.`deleted_at` = 0 ORDER BY `users`.`id` LIMIT 1"
2024-06-22 08:15:05 DBG logger/glog.go:97 call=manifest/manifest_put.go:77 elapsed=1.6796ms rows=1 sql="SELECT * FROM `namespaces` WHERE `namespaces`.`name` = \"library\" AND `namespaces`.`deleted_at` = 0 ORDER BY `namespaces`.`id` LIMIT 1"
2024-06-22 08:15:05 DBG logger/glog.go:97 call=manifest/manifest_put.go:123 elapsed=1.777036ms rows=1 sql="SELECT * FROM `namespaces` WHERE `namespaces`.`name` = \"library\" AND `namespaces`.`deleted_at` = 0 ORDER BY `namespaces`.`id` LIMIT 1"
2024-06-22 08:15:05 DBG logger/glog.go:97 call=manifest/manifest_put.go:123 elapsed=1.97808ms rows=1 sql="SELECT * FROM `repositories` WHERE `repositories`.`name` = \"library/parkingsys-token-svc\" AND `repositories`.`deleted_at` = 0 ORDER BY `repositories`.`id` LIMIT 1"
2024-06-22 08:15:05 DBG logger/glog.go:97 call=manifest/manifest_put.go:474 elapsed=1.590456ms rows=1 sql="SELECT * FROM `repositories` WHERE `repositories`.`name` = \"library/parkingsys-token-svc\" AND `repositories`.`deleted_at` = 0 ORDER BY `repositories`.`id` LIMIT 1"
2024-06-22 08:15:05 DBG logger/glog.go:97 call=manifest/manifest_put.go:172 elapsed=2.001033ms rows=0 sql="SELECT * FROM `artifacts` WHERE `artifacts`.`repository_id` = 31 AND `artifacts`.`digest` = \"sha256:509fa2740596c3818faf22564736c9007883761317ee218313cd05b5db1f8cb4\" AND `artifacts`.`deleted_at` = 0 ORDER BY `artifacts`.`id` LIMIT 1"
2024-06-22 08:15:05 DBG logger/glog.go:97 call=manifest/manifest_put.go:233 elapsed=2.640061ms rows=4 sql="SELECT * FROM `blobs` WHERE `blobs`.`digest` IN (\"sha256:0f13bb82259f5a6b0dc96d6c9dcb5ef712a5b78d212ace7cf46e304671be0367\",\"sha256:d25f557d7f31bf7acfac935859b5153da41d13c41f2b468d16f729a5b883634f\",\"sha256:23e0fd4b7e01c55cdc055c7a5accd468474be196973036aac46800165f1ed9c7\",\"sha256:a7475582620d2846bce52ea4c2de0fcdff28709415118c2f85e6de40e6434351\",\"sha256:0f13bb82259f5a6b0dc96d6c9dcb5ef712a5b78d212ace7cf46e304671be0367\",\"sha256:d25f557d7f31bf7acfac935859b5153da41d13c41f2b468d16f729a5b883634f\",\"sha256:23e0fd4b7e01c55cdc055c7a5accd468474be196973036aac46800165f1ed9c7\",\"sha256:a7475582620d2846bce52ea4c2de0fcdff28709415118c2f85e6de40e6434351\") AND `blobs`.`deleted_at` = 0"
2024-06-22 08:15:05 DBG logger/glog.go:97 call=manifest/manifest_put.go:243 elapsed=1.594518ms rows=0 sql="INSERT INTO `artifacts` (`created_at`,`updated_at`,`deleted_at`,`namespace_id`,`repository_id`,`digest`,`size`,`blobs_size`,`content_type`,`raw`,`config_raw`,`config_media_type`,`type`,`last_pull`,`pushed_at`,`pull_times`,`referrer_id`) VALUES (1719044105423,1719044105423,0,1,31,\"sha256:509fa2740596c3818faf22564736c9007883761317ee218313cd05b5db1f8cb4\",946,10312427,\"application/vnd.docker.distribution.manifest.v2+json\",\"<binary>\",\"{\"\"architecture\"\":\"\"amd64\"\",\"\"config\"\":{\"\"Env\"\":[\"\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\"\"],\"\"Cmd\"\":[\"\"/bin/sh\"\",\"\"-c\"\",\"\"/app/parkingsys-token-svc\"\"],\"\"ArgsEscaped\"\":true},\"\"created\"\":\"\"2024-06-22T16:11:19.809603127+08:00\"\",\"\"history\"\":[{\"\"created\"\":\"\"2024-05-22T18:18:11.872913732Z\"\",\"\"created_by\"\":\"\"/bin/sh -c #(nop) ADD file:e3abcdba177145039cfef1ad882f9f81a612a24c9f044b19f713b95454d2e3f6 in / \"\"},{\"\"created\"\":\"\"2024-05-22T18:18:12.052034407Z\"\",\"\"created_by\"\":\"\"/bin/sh -c #(nop)  CMD [\\\"\"/bin/sh\\\"\"]\"\",\"\"empty_layer\"\":true},{\"\"created\"\":\"\"2024-06-22T16:11:19.736182295+08:00\"\",\"\"created_by\"\":\"\"RUN /bin/sh -c sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories \\u0026\\u0026 mkdir /app # buildkit\"\",\"\"comment\"\":\"\"buildkit.dockerfile.v0\"\"},{\"\"created\"\":\"\"2024-06-22T16:11:19.809603127+08:00\"\",\"\"created_by\"\":\"\"COPY parkingsys-token-svc /app # buildkit\"\",\"\"comment\"\":\"\"buildkit.dockerfile.v0\"\"},{\"\"created\"\":\"\"2024-06-22T16:11:19.809603127+08:00\"\",\"\"created_by\"\":\"\"CMD [\\\"\"/bin/sh\\\"\" \\\"\"-c\\\"\" \\\"\"/app/parkingsys-token-svc\\\"\"]\"\",\"\"comment\"\":\"\"buildkit.dockerfile.v0\"\",\"\"empty_layer\"\":true}],\"\"os\"\":\"\"linux\"\",\"\"rootfs\"\":{\"\"type\"\":\"\"l
ayers\"\",\"\"diff_ids\"\":[\"\"sha256:02f2bcb26af5ea6d185dcf509dc795746d907ae10c53918b6944ac85447a0c72\"\",\"\"sha256:4176f1244bd45f36f2838404339da783d6cf4a3f699ab60e157f2b5f6bb1e770\"\",\"\"sha256:4925b5804d85c38bf4e2231084756d2ed250b727190b8ac14bc31f686407ad17\"\"]}}\",\"application/vnd.docker.container.image.v1+json\",\"Image\",0,1719044105423,0,NULL) ON CONFLICT DO NOTHING RETURNING `id`"
2024-06-22 08:15:05 ERR manifest/manifest_put.go:245 Create artifact failed error="SQL logic error: table artifacts has no column named namespace_id (1)" artifactObj={"ArtifactSubs":null,"Blobs":[{"Artifacts":null,"ContentType":"","CreatedAt":1719043891571,"DeletedAt":0,"Digest":"sha256:0f13bb82259f5a6b0dc96d6c9dcb5ef712a5b78d212ace7cf46e304671be0367","ID":207,"LastPull":0,"PullTimes":0,"PushedAt":1719043891571,"Size":1355,"UpdatedAt":1719043891571},{"Artifacts":null,"ContentType":"","CreatedAt":1719043890133,"DeletedAt":0,"Digest":"sha256:23e0fd4b7e01c55cdc055c7a5accd468474be196973036aac46800165f1ed9c7","ID":205,"LastPull":0,"PullTimes":0,"PushedAt":1719043890133,"Size":218,"UpdatedAt":1719043890133},{"Artifacts":null,"ContentType":"","CreatedAt":1719043891422,"DeletedAt":0,"Digest":"sha256:a7475582620d2846bce52ea4c2de0fcdff28709415118c2f85e6de40e6434351","ID":206,"LastPull":0,"PullTimes":0,"PushedAt":1719043891422,"Size":6688760,"UpdatedAt":1719043891422},{"Artifacts":null,"ContentType":"","CreatedAt":1716541494944,"DeletedAt":0,"Digest":"sha256:d25f557d7f31bf7acfac935859b5153da41d13c41f2b468d16f729a5b883634f","ID":40,"LastPull":0,"PullTimes":0,"PushedAt":1716541494944,"Size":3622094,"UpdatedAt":1716541494944}],"BlobsSize":10312427,"ConfigMediaType":"application/vnd.docker.container.image.v1+json","ConfigRaw":"eyJhcmNoaXRlY3R1cm......","ContentType":"application/vnd.docker.distribution.manifest.v2+json","CreatedAt":1719044105423,"DeletedAt":0,"Digest":"sha256:509fa2740596c3818faf22564736c9007883761317ee218313cd05b5db1f8cb4","ID":0,"LastPull":0,"Namespace":{"CreatedAt":0,"DeletedAt":0,"Description":null,"ID":0,"Name":"","Overview":null,"RepositoryCount":0,"RepositoryLimit":0,"Size":0,"SizeLimit":0,"TagCount":0,"TagLimit":0,"UpdatedAt":0,"Visibility":""},"NamespaceID":1,"PullTimes":0,"PushedAt":1719044105423,"Raw":"ewogICAic2NoZW1hVmVyc2......","Referrer":null,"ReferrerID":null,"Repository":{"Builder":null,"CreatedAt":0,"DeletedAt":0,"Description":null,"ID":0,"Name":"","Namespace":{"CreatedAt":0,"DeletedAt":0,"Description":null,"ID":0,"Name":"","Overview":null,"RepositoryCount":0,"RepositoryLimit":0,"Size":0,"SizeLimit":0,"TagCount":0,"TagLimit":0,"UpdatedAt":0,"Visibility":""},"NamespaceID":0,"Overview":null,"Size":0,"SizeLimit":0,"TagCount":0,"TagLimit":0,"UpdatedAt":0},"RepositoryID":31,"Sbom":{"Artifact":null,"ArtifactID":0,"CreatedAt":0,"DeletedAt":0,"ID":0,"Message":"","Raw":null,"Result":null,"Status":"","Stderr":null,"Stdout":null,"UpdatedAt":0},"Size":946,"Tags":null,"Type":"Image","UpdatedAt":1719044105423,"Vulnerability":{"Artifact":null,"ArtifactID":0,"CreatedAt":0,"DeletedAt":0,"ID":0,"Message":"","Metadata":null,"Raw":null,"Result":null,"Status":"","Stderr":null,"Stdout":null,"UpdatedAt":0}} digest=sha256:509fa2740596c3818faf22564736c9007883761317ee218313cd05b5db1f8cb4 repository=library/parkingsys-token-svc
Sokwva commented 1 week ago

解决方法:在数据库的artifact表中新增一列namespace_id

Sokwva commented 1 week ago

解决方法:在数据库的artifact表中新增一列namespace_id

这个方法同时解决了 #376 的问题

tosone commented 1 week ago

对于 sqlite 应该这样执行 sql 迁移语句(外键指向不加也是可以的):

ALTER TABLE `artifacts` ADD COLUMN `namespace_id` INTEGER REFERENCES `namespaces` (`id`);
Sokwva commented 1 week ago

那这可能就是问题所在了,没有自动迁移数据库的结构,导致在查询的时候出现问题,希望我没错过什么changelog里面的必读( ̄∇ ̄)