Aws-cli: Penyebaran Kode - Pengecualian yang tidak tertangani - ZIP tidak mendukung cap waktu sebelum 1980

Dibuat pada 5 Jun 2017  ·  32Komentar  ·  Sumber: aws/aws-cli

Gambaran

Saat menjalankan penerapan melalui circle-ci, kami baru-baru ini mendapatkan kesalahan berikut saat menjalankan perintah create_application_revision :

Unhandled exception
ZIP does not support timestamps before 1980

Saya tidak dapat menemukan masalah yang ada dengan repo. Kami belum mengubah konfigurasi apa pun baru-baru ini. Ini tampaknya baru mulai terjadi sejak kemarin, ini adalah pertama kalinya kami mengalami kesalahan pada build kami.

Kami menjalankan versi berikut:

aws-cli/1.11.97 Python/2.7.6 Linux/3.13.0-48-generic botocore/1.5.60

Jika ada yang bisa mengarahkan kami ke arah yang benar, itu akan sangat dihargai.

closing-soon guidance

Komentar yang paling membantu

eb deploy memberi saya

ERROR: ValueError - ZIP does not support timestamps before 1980

find . -mtime +10950 -print -exec touch {} \;
memecahkan masalah.

Semua 32 komentar

Kesalahan yang sama untuk:
aws cloudformation package ...

Uploading to a5902e46b3516ee3f44caf6251079b5f  1846 / 1846.0  (100.00%)
Unable to upload artifact ./../async-handlers/donation-created-handler referenced by CodeUri parameter of DonationCreatedHandlerFunction resource.
ZIP does not support timestamps before 1980

bahkan setelah menurunkan versi ke 1.11.79 (yang berfungsi beberapa waktu lalu) memberikan kesalahan yang sama.

log pembuatan lengkap

Sepertinya Anda memiliki beberapa file dengan stempel waktu yang tidak valid. Ini bisa menjadi indikasi masalah yang lebih besar, jadi saya akan merekomendasikan untuk memperbaikinya. Mengubah versi CLI Anda tidak akan memengaruhi ini karena kesalahannya muncul di python itu sendiri.

Saya melihat pesan kesalahan yang sama persis dengan CircleCI hari ini, selama perintah create_application_revision:

```create_application_revision /tmp/codedeploy_applications.json /tmp/codedeploy_revisions.json

create_application_revision dimuat: {"applications":[{"region":"us-west-2","application_root":"/","revision_location":{"s3Location":{"bucket":"","kunci":""},"revisionType":"S3"},"deployment_group":"staging","application_name":""}]}
bundeldari /home/ubuntu/
Pengecualian yang tidak tertangani
ZIP tidak mendukung cap waktu sebelum 1980

((create_application_revision "/tmp/codedeploy_applications.json" "/tmp/codedeploy_revisions.json")) mengembalikan kode keluar 1
```

Ada juga Laporan Bug yang terbuka di forum dukungan CircleCI tentang ini.

@JordonPhillips terima kasih atas umpan balik cepatnya. Kami akan menunggu untuk melihat apakah ada yang kembali kepada kami tentang masalah CircleCi. @arsenio -hanya untuk dicatat kami menyebarkan secara manual melalui penyebaran kode secara langsung dan ini memecahkan masalah dalam jangka pendek.

Jadi bagi saya uglify-js mendapat file dengan tanggal pembuatan pada 1969.
Sebagai solusinya saya menambahkan ini:

find ./dist/ -type f -exec touch -t 201601011200 '{}' \;

Ini juga terjadi pada kita; sejak Minggu di server build Shippable kami dan secara lokal setelah rm -rf node_modules

eb deploy
Creating application version archive "app-bce1-170606_163952".
ERROR: ValueError :: ZIP does not support timestamps before 1980

Ini adalah aplikasi nodejs, EB CLI 3.9.0 (Python 2.7.1)

Pembaruan: Sepertinya ini disebabkan oleh uglify-js seperti yang dikatakan @mgibas .

@mgibas dengan save: file tertentu (tetapi tidak semua) di perpustakaan ugllify-js memiliki stempel waktu 1969. Menyentuh file-file itu akan membuat Anda melewati rintangan jahat ini.

Sebenarnya menurut saya ada masalah dengan paket NPM Webpack . Masalah yang diposting https://github.com/webpack/webpack/issues/5022

Ya, sepertinya uglify adalah ketergantungan yang cukup umum :)

https://github.com/mishoo/UglifyJS2/issues/2054

@sumothecat itu bukan masalah Webpack. Ini masalah dengan UglifyJS yang digunakan webpack. Komunitas perlu menunjuk jari di lokasi yang benar seperti yang telah ditautkan oleh @mgibas

@eric-tucker kami tidak menggunakan Uglify, tetapi Webpack memiliki ketergantungan implisit padanya. Saya telah menutup masalah di Webpack dan akan menggunakan file kunci benang di masa mendatang!

Sama di sini, ada pikiran?

image

Untuk aplikasi saya, jest dan webpack membawa versi uglify-js rusak.

Karena saya sudah menggunakan npm-shrinkwrap , saya menambahkan baris berikut ke file npm-shrinkwrap.json -

"uglify-js": {
      "version": "2.8.27",
      "from": "uglify-js@=2.8.27",
      "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.27.tgz"
    },

yang memungkinkan saya mengatasi masalah ini untuk sementara.

Melihat jawaban mgibas, solusi temp yang bekerja untuk saya untuk saat ini setelah pemasangan benang atau pemasangan npm adalah.

find node_modules/uglify-js -print -exec touch {} \;

Peretasan yang lebih kuat untuk ditambahkan ke file package.json :

{
  "scripts": {
    "install": "find ./node_modules/* -mtime +10950 -exec touch {} \\;"
  }
}

Ini akan touch setiap file yang berusia lebih dari 30 tahun setelah setiap perintah npm install .

Apakah ada yang masih mengalami masalah ini?
Bug di NPM yang merusak mtime telah diperbaiki .
Dan versi baru UglifyJS telah diterbitkan .

Tampaknya juga ada masalah dengan modul ieee754 , yang merupakan ketergantungan aws-sdk . Masalah ini telah dilaporkan: https://github.com/feross/ieee754/issues/17

melihat masalah yang sama, disebabkan oleh @slack/client npm kali ini.

Meskipun pasti ada masalah dengan beberapa stempel waktu yang rusak, saya tidak mengerti mengapa alat CLI ini harus peduli. Apa alasan stempel waktu tidak valid yang menyebabkan masalah ini? Apakah ada cara mereka dapat didukung untuk sepenuhnya menghindari masalah ini?

Saya memiliki masalah yang sama. Saya mencoba semuanya, tetapi hanya me-restart laptop saya yang berhasil.

Masalah yang sama dan ini bukan masalah uglify-js karena saya memiliki versi terbaru dari lib ini.

seperti yang disarankan di atas saya baru saja berlari
temukan ./node_modules/* -mtime +10950 -exec touch {} \;
pada terminal vscode dari direktori root proj dan itu memperbaikinya

eb deploy memberi saya

ERROR: ValueError - ZIP does not support timestamps before 1980

find . -mtime +10950 -print -exec touch {} \;
memecahkan masalah.

Ini telah menjadi masalah berulang pada beberapa proyek dengan dependensi yang berbeda.

Saya masih mengalami masalah ini.

Baru saja mengalami masalah ini ketika saya menambahkan nyc (istanbul) sebagai ketergantungan dev, sepertinya itu menambahkan uglify-js yang merupakan akar penyebab masalah ini.

Dari PoV saya, sepertinya terkait dengan yarn di Mac.
Saat menggunakan npm di Mac semuanya baik-baik saja.
Saat menggunakan yarn di Ubuntu semuanya baik-baik saja.
Bahkan dengan uglify-js dan banyak dependensi lainnya.
Itu dapat didemonstrasikan dengan mengemas hello-world AWS SAM (https://github.com/awslabs/aws-sam-cli/tree/develop#package-and-deploy-to-lambda).
Lain, https://github.com/aws/aws-cli/issues/2639#issuecomment -391255985 lakukan trik dengan sempurna (tetapi bisa mahal dengan banyak file)

Kami menggunakan yarn --production yang melewatkan semua paket devDependencies , ini membantu memecahkan masalah ini.

Sayangnya, saya bergantung pada beberapa paket dalam produksi yang menyebabkan masalah ini sehingga yarn --production tidak membantu.

Yang mengatakan, yarn --production sebelum memperbaiki stempel waktu di node_modules/ secara signifikan mengurangi waktu pembuatan.

Untuk apa perintah windows?

temukan ./node_modules/* -mtime +10950 -exec touch {} \;

Saya tidak dapat menjalankan ini di komputer saya

Sepertinya ini bisa diperbaiki dengan menggunakan argumen strict_timestamps dari zipfile python library .

Apakah halaman ini membantu?
0 / 5 - 0 peringkat