Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Killing zef corrupts the store (?) #422

Open
andinus opened this issue Nov 3, 2021 · 7 comments
Open

Killing zef corrupts the store (?) #422

andinus opened this issue Nov 3, 2021 · 7 comments

Comments

@andinus
Copy link

andinus commented Nov 3, 2021

andinus@ ~> zef --update=fez search fornax
===> Updating fez mirror: http://360.zef.pm/
===> Updated fez mirror: http://360.zef.pm/
Use of uninitialized value @short-names-to-index of type Any in string context.
Methods .^name, .raku, .gist, or .say can be used to stringify it to something meaningful.
  in block  at /home/andinus/.raku/sources/32E407EDE579C166DFEF1B180F5930E968008D1A (Zef::Repository::Ecosystems) line 247
Use of uninitialized value @short-names-to-index of type Any in string context.
Methods .^name, .raku, .gist, or .say can be used to stringify it to something meaningful.
  in block  at /home/andinus/.raku/sources/32E407EDE579C166DFEF1B180F5930E968008D1A (Zef::Repository::Ecosystems) line 247
===> Found 0 results

Context

Updating an ecosystem and searching for a module.

Expected Behavior

No warnings expected.

Steps to Reproduce

andinus@ ~> zef --debug --update=fez search fornax
===> Updating fez mirror: http://360.zef.pm/
===> Updated fez mirror: http://360.zef.pm/
Use of uninitialized value @short-names-to-index of type Any in string context.
Methods .^name, .raku, .gist, or .say can be used to stringify it to something meaningful.
  in block  at /home/andinus/.raku/sources/32E407EDE579C166DFEF1B180F5930E968008D1A (Zef::Repository::Ecosystems) line 247
Use of uninitialized value @short-names-to-index of type Any in string context.
Methods .^name, .raku, .gist, or .say can be used to stringify it to something meaningful.
  in block  at /home/andinus/.raku/sources/32E407EDE579C166DFEF1B180F5930E968008D1A (Zef::Repository::Ecosystems) line 247
===> Found 0 results

Your Environment

andinus@ ~> raku -v
Welcome to Rakudo™ v2021.10.
Implementing the Raku® Programming Language v6.d.
Built on MoarVM version 2021.10.
andinus@ ~> zef list --installed                                                              
===> Found via /home/andinus/.raku
App::RaCoCo:ver<1.4.4>:auth<zef:atroxaper>
Base64:ver<0.0.2>:auth<github:ugexe>         
CBOR::Simple:ver<0.1.0>:auth<zef:japhb>
CSV::Parser:ver<0.1.2>:auth<zef:tony-o>   
Cairo:ver<0.2.7>                                                                                         
Cro::Core:ver<0.8.6>    
Cro::HTTP:ver<0.8.6>                 
Cro::TLS:ver<0.8.6>
Cro::WebSocket:ver<0.8.6>             
Crypt::Random:ver<0.4.1>:auth<github:skinkade>
DB::Pg:ver<1.1>:auth<github:CurtTilmes>:api<1>
DBIish:ver<0.6.2>:auth<github:raku-community-modules>                                                    
Data::Dump:ver<0.0.14>:auth<zef:tony-o>
DateTime::Parse:ver<0.9.1>       
Digest::HMAC:ver<1.0.2>:auth<github:retupmoca>
Digest::SHA1::Native:ver<0.04>           
Digest:ver<0.4.0>:auth<Lucien Grondin>           
Docker::File:ver<1.0>:auth<github:jnthn>
File::Find:ver<0.1.1>
File::Ignore:ver<1.1>:auth<Jonathan Worthington <jnthn@jnthn.net>>                                       
File::Which:ver<1.0.1>                    
HTML::Escape:ver<0.0.1>                      
HTTP::HPACK:ver<0.9.2>                 
IO::Path::ChildSecure:ver<1.001011>          
IO::Socket::Async::SSL:ver<0.7.8>:auth<jnthn>                                                            
JSON::Class:ver<0.0.18>:auth<github:jonathanstowe>:api<1.0>                                              
JSON::Fast:ver<0.16>                     
JSON::JWT:ver<1.0>:auth<github:retupmoca>                                                               
JSON::Marshal:ver<0.0.23>:auth<github:jonathanstowe>:api<1.0>
JSON::Name:ver<0.0.6>:auth<github:jonathanstowe>:api<1.0>                                                
JSON::OptIn:ver<0.0.1>:auth<github:jonathanstowe>
JSON::Unmarshal:ver<0.08>                                                                                
LibUUID:ver<0.5>:auth<github:CurtTilmes>     
LibraryMake:ver<1.0.0>:auth<github:retupmoca>                                                           
License::SPDX:ver<3.14.0>:auth<github:jonathanstowe>:api<1.0>                                            
Linenoise:ver<0.1.1>:auth<Rob Hoelz>     
Log::Async:ver<0.0.7>                            
Log::Timeline:ver<0.4>                                                                                  
META6:ver<0.0.26>:auth<github:jonathanstowe>:api<1.0>                                                    
MIME::Base64:ver<1.2.1>:auth<github:retupmoca>
NativeHelpers::Blob:ver<0.1.12>:auth<github:salortiz>                                                    
NativeLibs:ver<0.0.9>:auth<github:salortiz>
OO::Monitors:ver<1.1.1>
OpenSSL:ver<0.1.27>:auth<github:sergot>
PathTools:ver<0.1.1>:auth<github:ugexe>
Red:ver<0.1.52>:auth<Fernando Correa de Oliveira>:api<2>                                                 
Shell::Command
Template::Nest:ver<0.1.1>
Terminal::ANSI:ver<0.0.24>:auth<cpan:bduggan>
Terminal::ANSIColor:ver<0.5>
Terminal::UI:ver<0.1.1>:auth<cpan:bduggan>
Test::META:ver<0.0.17>:auth<github:jonathanstowe>:api<1.0>                                               
Test::When:ver<1.001008>
TinyFloats:ver<0.0.3>:auth<zef:japhb>
URI:ver<0.3.3>
UUID:ver<1.0.0>:auth<github:retupmoca>
YAMLish:ver<0.0.6>
cro:ver<0.8.6>
fez:ver<31>:auth<zef:tony-o>:api<0>
fornax:ver<0.1.0>:auth<zef:andinus>
if:ver<0.1.1>:auth<github:FROGGS>
taurus:ver<0.1.1>:auth<zef:andinus>
zef:ver<0.13.1>:auth<github:ugexe>:api<0>
===> Found via /usr/local/rakudo/share/perl6/core
CORE:ver<6.d>:auth<perl>
@andinus
Copy link
Author

andinus commented Nov 3, 2021

I do remember killing zef while it was running zef --update search fornax.

It emits these even when performing a normal search:

andinus@ ~> zef search octans
Use of uninitialized value @short-names-to-index of type Any in string context.
Methods .^name, .raku, .gist, or .say can be used to stringify it to something meaningful.
  in block  at /home/andinus/.raku/sources/32E407EDE579C166DFEF1B180F5930E968008D1A (Zef::Repository::Ecosystems) line 247
Use of uninitialized value @short-names-to-index of type Any in string context.
Methods .^name, .raku, .gist, or .say can be used to stringify it to something meaningful.
  in block  at /home/andinus/.raku/sources/32E407EDE579C166DFEF1B180F5930E968008D1A (Zef::Repository::Ecosystems) line 247
===> Found 0 results

And the previous search should be returning results.

@andinus andinus changed the title Warnings emitted when searching & updating an ecosystem Killing zef corrupts the store (?) Nov 3, 2021
@andinus
Copy link
Author

andinus commented Nov 3, 2021

rm -fr ~/.zef

fixed this issue.

andinus@ ~/.zef> zef search fornax
===> Updating fez mirror: http://360.zef.pm/
===> Updated fez mirror: http://360.zef.pm/
===> Updating cpan mirror: https://raw.githubusercontent.com/ugexe/Perl6-ecosystems/master/cpan1.json
===> Updating p6c mirror: https://raw.githubusercontent.com/ugexe/Perl6-ecosystems/master/p6c1.json
===> Updated p6c mirror: https://raw.githubusercontent.com/ugexe/Perl6-ecosystems/master/p6c1.json
===> Updated cpan mirror: https://raw.githubusercontent.com/ugexe/Perl6-ecosystems/master/cpan1.json
===> Found 1 results
--------------------------------------------------------------------------------------------------------------------------------
ID|From                            |Package                            |Description                                             
--------------------------------------------------------------------------------------------------------------------------------
0 |Zef::Repository::Ecosystems<fez>|fornax:ver<0.1.0>:auth<zef:andinus>|Collection of tools to visualize Path Finding Algorithms
--------------------------------------------------------------------------------------------------------------------------------

@andinus
Copy link
Author

andinus commented Nov 3, 2021

Is this expected behavior?

@ugexe
Copy link
Owner

ugexe commented Nov 3, 2021

I'm guessing the json file for the fez ecosystem wasn't written out fully so until it was updated again zef would just see it as empty. At the very least there shouldn't be warnings though.

@andinus
Copy link
Author

andinus commented Nov 4, 2021

I see, but then --update should have fixed it, right? Even after multiple update runs it emitted those warnings, it only went away after rm -fr ~/.zef.

@ugexe
Copy link
Owner

ugexe commented Nov 4, 2021

Yeah that is correct.

For the ecosystems it downloads the file to ~/.zef/store/fez.json and then moves it to ~/.zef/store/fez/fez.json (or maybe its the other way around... its early). I'm not really sure what state those files could be in that a update wasn't overwriting those files despite having e.g. curld them though...

@andinus
Copy link
Author

andinus commented Jun 27, 2023

I ran into this again, it seems like it did download the file to ~/.zef/store/360.zef.pm and moved that to ~/.zef/store/fez/fez.json.

This was the file it downloaded:

andinus@cadmium ~/.z/s/fez> tail -c 450 ../360.zef.pm
n":"0.1.3"},{"auth":"zef:tony-o","depends":["HTTP::Server","JSON::Fast"],"description":"Middleware to parse JSON for HTTP::Server-s","dist":"HTTP::Server::Middleware::JSON:ver\u003c0.0.1\u003e:auth\u003czef:tony-o\u003e","name":"HTTP::Server::Middleware::JSON","path":"H/TT/HTTP_SERVER_MIDDLEWARE_JSON/24297dbc074dde504ab302a2152fb32a9ed10f31.tar.gz","perl":"6.*","provides":{"HTTP::Server::Middleware::JSON":"lib/HTTP/Server/Middleware/JSON.pm6"},"s⏎

What seems to be happening is that the download gets interrupted and so it writes an incomplete file to 360.zef.pm which gets copied.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants