kindredgroup / puppet-forge-server

Private Puppet forge server supports local files and both v1 and v3 API proxies
69 stars 44 forks source link

Error reading from module archive & reading metadata #31

Closed danilopopeye closed 8 years ago

danilopopeye commented 8 years ago
App 24575 stderr: Error reading from module archive /opt/forge/modules/darin-zypprepo-1.0.2.tar.gz: 757: unexpected token at '30 mtime=1421787381.818190977
App 24575 stderr: 30 atime=1421787381.817190969
App 24575 stderr: 30 ctime=1421787381.818190977
App 24575 stderr: '
App 24575 stderr: [2015-10-27 18:18:38] ERROR  Failed reading metadata from /opt/forge/modules/darin-zypprepo-1.0.2.tar.gz
App 24575 stderr: Error reading from module archive /opt/forge/cache/93c654b7b5d3bff7decd0a021bf7cd0a28040c3c/d/darin-zypprepo-1.0.2.tar.gz: 757: unexpected token at '30 mtime=1421787381.818190977
App 24575 stderr: 30 atime=1421787381.817190969
App 24575 stderr: 30 ctime=1421787381.818190977
App 24575 stderr: '
App 24575 stderr: [2015-10-27 18:18:38] ERROR  Failed reading metadata from /opt/forge/cache/93c654b7b5d3bff7decd0a021bf7cd0a28040c3c/d/darin-zypprepo-1.0.2.tar.gz
App 24575 stderr: 192.168.1.3 - - [27/Oct/2015 18:18:38] "GET /modules.json HTTP/1.1" 200 4545 0.1132

kinda in a rush today, I'll post any info you need later. just didn't forget to report the issue!

i11 commented 8 years ago

I'm quite sure this is because of the earlier bug where module upload produced file handlers in all directory backends (including cache), but only one of them got the buffer, so the rest resulted 0 byte files. It was fixed in the latest version (1.8.0), but empty files are still there.

You could make sure that module files are placed in the right directory and delete the 0 byte files.

danilopopeye commented 8 years ago

I am using 1.8.0 and this module is not 0 bytes.

[forge] $ ls -l cache/93c654b7b5d3bff7decd0a021bf7cd0a28040c3c/*/*
-rw-r--r-- 1 nginx nginx   5169 Oct 29 15:59 cache/93c654b7b5d3bff7decd0a021bf7cd0a28040c3c/d/darin-zypprepo-1.0.2.tar.gz

[forge]$ md5sum cache/93c654b7b5d3bff7decd0a021bf7cd0a28040c3c/d/darin-zypprepo-1.0.2.tar.gz
6987c0fd5c282d07c4fde79f57c4bf58  cache/93c654b7b5d3bff7decd0a021bf7cd0a28040c3c/d/darin-zypprepo-1.0.2.tar.gz

[forge]$ tar tvf modules/darin-zypprepo-1.0.2.tar.gz
drwxr-xr-x dperusich-l/users 0 2015-01-20 18:56 darin-zypprepo-1.0.2/
drwxr-xr-x dperusich-l/users 0 2015-01-20 18:56 darin-zypprepo-1.0.2/lib/
drwxr-xr-x dperusich-l/users 0 2015-01-20 18:56 darin-zypprepo-1.0.2/lib/puppet/
drwxr-xr-x dperusich-l/users 0 2015-01-20 18:56 darin-zypprepo-1.0.2/lib/puppet/type/
-rw-r--r-- dperusich-l/users 8861 2015-01-20 18:56 darin-zypprepo-1.0.2/lib/puppet/type/zypprepo.rb
drwxr-xr-x dperusich-l/users    0 2015-01-20 18:56 darin-zypprepo-1.0.2/manifests/
-rw-r--r-- dperusich-l/users  202 2015-01-20 18:56 darin-zypprepo-1.0.2/manifests/init.pp
drwxr-xr-x dperusich-l/users    0 2015-01-20 18:56 darin-zypprepo-1.0.2/spec/
-rw-r--r-- dperusich-l/users   47 2015-01-20 18:56 darin-zypprepo-1.0.2/spec/spec.opts
-rw-r--r-- dperusich-l/users  426 2015-01-20 18:56 darin-zypprepo-1.0.2/spec/spec_helper.rb
-rw-r--r-- dperusich-l/users   90 2015-01-20 18:56 darin-zypprepo-1.0.2/_gitignore
drwxr-xr-x dperusich-l/users    0 2015-01-20 18:56 darin-zypprepo-1.0.2/tests/
-rw-r--r-- dperusich-l/users   17 2015-01-20 18:56 darin-zypprepo-1.0.2/tests/init.pp
-rw-r--r-- dperusich-l/users  542 2015-01-20 18:56 darin-zypprepo-1.0.2/README
-rw-r--r-- dperusich-l/users  422 2015-01-20 18:56 darin-zypprepo-1.0.2/Modulefile
-rw-r--r-- dperusich-l/users 4663 2015-01-20 18:56 darin-zypprepo-1.0.2/metadata.json
danilopopeye commented 8 years ago

hum, did some investigation and maybe the problem is described here: https://github.com/owncloud/core/issues/5783#issuecomment-28157519

irb(main):015:0> dz = 'modules/darin-zypprepo-1.0.2.tar.gz'
=> "modules/darin-zypprepo-1.0.2.tar.gz"
irb(main):016:0> tgz = Gem::Package::TarReader.new(Zlib::GzipReader.open(dz))
=> #<Gem::Package::TarReader:0x007fbcd144d9b0 @io=#<Zlib::GzipReader:0x007fbcd144dac8>, @init_pos=0>
irb(main):017:0> tgz.map(&:full_name)
=> ["./PaxHeaders.27048/darin-zypprepo-1.0.2", "darin-zypprepo-1.0.2/", "darin-zypprepo-1.0.2/PaxHeaders.27048/lib", "darin-zypprepo-1.0.2/lib/", "darin-zypprepo-1.0.2/lib/PaxHeaders.27048/puppet", "darin-zypprepo-1.0.2/lib/puppet/", "darin-zypprepo-1.0.2/lib/puppet/PaxHeaders.27048/type", "darin-zypprepo-1.0.2/lib/puppet/type/", "darin-zypprepo-1.0.2/lib/puppet/type/PaxHeaders.27048/zypprepo.rb", "darin-zypprepo-1.0.2/lib/puppet/type/zypprepo.rb", "darin-zypprepo-1.0.2/PaxHeaders.27048/manifests", "darin-zypprepo-1.0.2/manifests/", "darin-zypprepo-1.0.2/manifests/PaxHeaders.27048/init.pp", "darin-zypprepo-1.0.2/manifests/init.pp", "darin-zypprepo-1.0.2/PaxHeaders.27048/spec", "darin-zypprepo-1.0.2/spec/", "darin-zypprepo-1.0.2/spec/PaxHeaders.27048/spec.opts", "darin-zypprepo-1.0.2/spec/spec.opts", "darin-zypprepo-1.0.2/spec/PaxHeaders.27048/spec_helper.rb", "darin-zypprepo-1.0.2/spec/spec_helper.rb", "darin-zypprepo-1.0.2/PaxHeaders.27048/_gitignore", "darin-zypprepo-1.0.2/_gitignore", "darin-zypprepo-1.0.2/PaxHeaders.27048/tests", "darin-zypprepo-1.0.2/tests/", "darin-zypprepo-1.0.2/tests/PaxHeaders.27048/init.pp", "darin-zypprepo-1.0.2/tests/init.pp", "darin-zypprepo-1.0.2/PaxHeaders.27048/README", "darin-zypprepo-1.0.2/README", "darin-zypprepo-1.0.2/PaxHeaders.27048/Modulefile", "darin-zypprepo-1.0.2/Modulefile", "darin-zypprepo-1.0.2/PaxHeaders.27048/metadata.json", "darin-zypprepo-1.0.2/metadata.json"]
i11 commented 8 years ago

Yeah, it might be as well. Not sure how we can address it though.