Many errors when cloning pijul_org/pijul

I wanted to get a fresh clone of pijul_org/pijul, and eventually succeeded, but was left with the following shell session:

$ pijul clone https://nest.pijul.com/pijul_org/pijul
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { kind: Hyper(Error { kind: Incomplete }), url: Some("https://nest.pijul.com/pijul_org/pijul/.pijul/patches/6scnHAmkHF3wAnC3UNHcSAsvS4NjXgwunBZq2fbzK5oaxkfuXDzP6NddpRF88zeMF2PyaLM2FXgsdL7N3kRC1r3Z.sig") }', libcore/result.rs:1009:5
note: Run with `RUST_BACKTRACE=1` for a backtrace.
$ cd pijul
$ pijul pull https://nest.pijul.com/pijul_org/pijul --set-remote origin
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { kind: Hyper(Error { kind: Incomplete }), url: Some("https://nest.pijul.com/pijul_org/pijul/.pijul/patches/6HLHUW8GwKdKAc24RnBDayQcv5DvyeYEg7Q6RcNGSLkRo782sk6MTMGNexHWgYffestFkoLPTq7NN2BQ1TPYUL7c.sig") }', libcore/result.rs:1009:5
note: Run with `RUST_BACKTRACE=1` for a backtrace.
$ pijul pull https://nest.pijul.com/pijul_org/pijul --set-remote origin
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { kind: Hyper(Error { kind: Incomplete }), url: Some("https://nest.pijul.com/pijul_org/pijul/.pijul/patches/885EePVNrfjZrKozEmf2pYsDyqiFKQ5yLk31rdetHft4VxgE6MGQaqRfJNiG8cEk8LnAx31DGYa6rWSSj6iYRFLp.sig") }', libcore/result.rs:1009:5
note: Run with `RUST_BACKTRACE=1` for a backtrace.
# ... 9 additional panics later, all patches are downloaded ...
$ pijul pull https://nest.pijul.com/pijul_org/pijul --set-remote origin
Pulling patches: 100% (205/205), done.
Hash: 9tNKV1UL5cYbw3gpDScSfoZSRthQ3a6KHHKMQTjA1CyCumqrVcXey6t37qJMHURpZQwZt1UsKoj3bhNPfevwdhTK
Authors: Pierre-Étienne Meunier <pe@pijul.org>
Timestamp: 2018-02-27 14:44:24.130178136 UTC
    Init
Shall I pull this patch? [ynkad?] a
Applying patches: 100% (205/205), done.
There are pending conflicts waiting to be solved:
    libpijul/src/fs_representation.rs
    pijul/src/commands/fs_operation.rs
    pijul/src/commands/status.rs
    pijul/src/commands/record.rs

I don’t think this is expected :smile: Am I doing something wrong? I’m thinking the panics are network failures of some kind, but then being launched straight into conflicts surprised me quite a bit.


This might be related to:

(I got the idea of adding --set-remote origin from there.)

Yes, the latest patch in the repository causes a bunch of conflicts. You can pull from the “investigate_conflicts” branch until things are sorted in master.

This is now fixed, hopefully.

Hi, I’m new to pijul as well and had the same problems trying to clone from source, as of today on the latest version 0.11.1 built from source.

Running pijul clone throws an error straight away, and going into the directory and pulling runs fine until 167/207 patches, where it starts panicking out once every few patches, and finally ended with the same conflicts listed above.

Also strange was the count jumping instantly from 197/207 to completion at the end of the sequence.

Is there any way to check if the data I pulled is complete and not corrupted?

$ pijul pull https://nest.pijul.org/pijul_org/pijul --set-default
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { kind: Hyper(Error { kind: Incomplete }), url: Some("https://nest.pijul.org/pijul_org/pijul/.pijul/patches/983XuNNx1WDYXqTtJ9Acbfob3pvbmjpsksJXriq9VJEG1iVQ2nq9zWhuKrZ2oSX89fvwwWsPXEoyom5ivEyda6gE.sig") }', libcore/result.rs:1009:5
note: Run with `RUST_BACKTRACE=1` for a backtrace.
$ pijul pull https://nest.pijul.org/pijul_org/pijul
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { kind: Hyper(Error { kind: Incomplete }), url: Some("https://nest.pijul.org/pijul_org/pijul/.pijul/patches/8tqfDssc1TFLuYxXKz6nd1vtTMx6ggRooV5kT245dRDT5zWgAaTPJexo7gUEaELQ1ShUtqEANDbMBUL59P7qAvGc.sig") }', libcore/result.rs:1009:5
note: Run with `RUST_BACKTRACE=1` for a backtrace.
$ pijul pull https://nest.pijul.org/pijul_org/pijul
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { kind: Hyper(Error { kind: Incomplete }), url: Some("https://nest.pijul.org/pijul_org/pijul/.pijul/patches/7K5THRbXpmLt1QqzLTWQNdYAcz7Yp7oWgoMk6X2T4TgX6SrbKGacPoYG7t83J56pJvQmiGoMqQpczzH5KP4vpHo8.sig") }', libcore/result.rs:1009:5
note: Run with `RUST_BACKTRACE=1` for a backtrace.
$ pijul pull https://nest.pijul.org/pijul_org/pijul
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { kind: Hyper(Error { kind: Incomplete }), url: Some("https://nest.pijul.org/pijul_org/pijul/.pijul/patches/B2kM4BmmNdUFL7U5Ra8W8BVrZom3ryejWY6t1eRHKrt74TqRvSEywDtnexZrQgHf6RMwBq7LV5Gf6NRw9f1WdQcr.sig") }', libcore/result.rs:1009:5
note: Run with `RUST_BACKTRACE=1` for a backtrace.
$ pijul pull https://nest.pijul.org/pijul_org/pijul
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { kind: Hyper(Error { kind: Incomplete }), url: Some("https://nest.pijul.org/pijul_org/pijul/.pijul/patches/6QmTyjgPnKZKaideBffsgpMrexc25tphT9zgDd95MtiV4jpksPicF3Yjq7Mi7kztwGaKANrkbCcU1ptGuoufF1DM.sig") }', libcore/result.rs:1009:5
note: Run with `RUST_BACKTRACE=1` for a backtrace.
$ pijul pull https://nest.pijul.org/pijul_org/pijul
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { kind: Hyper(Error { kind: Incomplete }), url: Some("https://nest.pijul.org/pijul_org/pijul/.pijul/patches/6BPqPsJyXxWMPQAKpuzoGtHrC1gr2QAyhMarbKdb537oRFdJmB4rDqhnqDnYvAb5cTm8AKFaRmj7B1PCDUifwCb3.sig") }', libcore/result.rs:1009:5
note: Run with `RUST_BACKTRACE=1` for a backtrace.
$ pijul pull https://nest.pijul.org/pijul_org/pijul
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { kind: Hyper(Error { kind: Incomplete }), url: Some("https://nest.pijul.org/pijul_org/pijul/.pijul/patches/9pjoFiawccUE94wrGQn9jXiCatKtuZHsoUoDxzoXwyjiWSGVYaReS6TiGBDhdXW3RXm6EXP1shpkqcB9mFYsokgX.sig") }', libcore/result.rs:1009:5
note: Run with `RUST_BACKTRACE=1` for a backtrace.
$ pijul pull https://nest.pijul.org/pijul_org/pijul
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { kind: Hyper(Error { kind: Incomplete }), url: Some("https://nest.pijul.org/pijul_org/pijul/.pijul/patches/7Z4kLYUhXKTTyEzxyBzCZHcghGskqYgcthBQ1FP8EByjES7Zi1womQpQQT8KWGz9kJqJJmQNupC3XZCdEuDnVWdZ.sig") }', libcore/result.rs:1009:5
note: Run with `RUST_BACKTRACE=1` for a backtrace.
$ pijul pull https://nest.pijul.org/pijul_org/pijul
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { kind: Hyper(Error { kind: Incomplete }), url: Some("https://nest.pijul.org/pijul_org/pijul/.pijul/patches/6GHwSTevaRZkJPdr5Jze1d5jikSUUcMrcfwSZtbNJgndKfcQwjrM5BSz4Kr6aRt5nzwgRqfsaYNfJPktPFfpU62d.sig") }', libcore/result.rs:1009:5
note: Run with `RUST_BACKTRACE=1` for a backtrace.
$ pijul pull https://nest.pijul.org/pijul_org/pijul
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { kind: Hyper(Error { kind: Incomplete }), url: Some("https://nest.pijul.org/pijul_org/pijul/.pijul/patches/6RM7Mg5Lagwh1sjfCtHqxkZsBKnPx8TduJ4WGnmfcEytxhnrG3c4AhQs3pGRRcaybvw97BFE1Z3LQhkw3Yta7RDk.sig") }', libcore/result.rs:1009:5
note: Run with `RUST_BACKTRACE=1` for a backtrace.
$ pijul pull https://nest.pijul.org/pijul_org/pijul
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { kind: Hyper(Error { kind: Incomplete }), url: Some("https://nest.pijul.org/pijul_org/pijul/.pijul/patches/B8GjgZZrvwHTFa7y5RphNDQrKY5979RUaC59GGChAUUG5zdneAKHdVxyVFHAfq8ZRbFKKycGGvBQ2k3yik9YM6Mk.sig") }', libcore/result.rs:1009:5
note: Run with `RUST_BACKTRACE=1` for a backtrace.
$ pijul pull https://nest.pijul.org/pijul_org/pijul
Pulling patches: 100% (207/207), done.

Hash: 9tNKV1UL5cYbw3gpDScSfoZSRthQ3a6KHHKMQTjA1CyCumqrVcXey6t37qJMHURpZQwZt1UsKoj3bhNPfevwdhTK
Authors: Pierre-Étienne Meunier <pe@pijul.org>
Timestamp: 2018-02-27 14:44:24.130178136 UTC

    Init

Shall I pull this patch? [ynkad?] a
Applying patches: 100% (207/207), done.
There are pending conflicts waiting to be solved:
    libpijul/src/fs_representation.rs
    pijul/src/commands/status.rs
    pijul/src/commands/record.rs
    pijul/src/commands/fs_operation.rs

THIS IS FIXED! I’M SO HAPPY!

I’ve been trying to fix this for almost two months now, tried everything I could. I’m sorry for the inconvenience.

4 Likes

Yay! \o/

I’ll try pulling again when I get the opportunity. What was the problem?

The problem is rather hard to describe. In short, it was (1) a problem in the code that outputs the graph into a flat file, along with (2) a mismatch between that output and the new fast diff.

Diff needs to know exactly what comes out of the flattening algorithm, because it can’t really recognise where the lines come from else. Aligning the two has required more and more precision as Pijul evolved, culminating in the last failure.

My next mission for Pijul is to change the Nest to reject patches that produce conflicts. This is actually quite easy, we just need to return the number of conflicts from the apply function.

Has the fix been officially released? The latest version of Pijul from cargo install is 11.1 (same as before) and I’m still getting the same errors when cloning.

It has not been officially released, no, but will be very soon. There are still a few half-baked features in the master branch (PGP support is almost there, and a few stability enhancements have not been completely tested).

1 Like