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

Remove some unsound specializations #68358

Merged
merged 1 commit into from Feb 8, 2020
Merged

Conversation

@matthewjasper
Copy link
Contributor

matthewjasper commented Jan 19, 2020

This removes the unsound and exploitable specializations in the standard library

  • The PartialEq and Hash implementations for RangeInclusive are changed to avoid specialization.
  • The PartialOrd specialization for slices now specializes on a limited set of concrete types.
  • Added some tests for the soundness problems.
@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Jan 19, 2020

r? @KodrAus

(rust_highfive has picked a reviewer for you, use r? to override)

@matthewjasper

This comment has been minimized.

Copy link
Contributor Author

matthewjasper commented Jan 19, 2020

I'm running perf, but I suspect that this is more likely to affect other applications more than the compiler.
@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

Copy link

rust-timer commented Jan 19, 2020

Awaiting bors try build completion

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Jan 19, 2020

⌛️ Trying commit 70e0084 with merge 7aaf762...

bors added a commit that referenced this pull request Jan 19, 2020
Remove some unsound or hard to verify specializations

I've been working on restricting specialization in the standard library to prevent issues like #67194. This is the fallout of those changes.

* The `PartialEq` and `Hash` implementations for  `RangeInclusive` are changed to avoid specialization.
* The `PartialOrd` specialization for slices now specializes on a limited set of concrete types.
* Some impls of `TrustedRandomAccess` (a trait used to improve `iter::Zip` performance) have been removed.
* Added some tests for the soundness problems.
@rust-highfive

This comment has been minimized.

Copy link
Collaborator

rust-highfive commented Jan 19, 2020

The job x86_64-gnu-llvm-7 of your PR failed (pretty log, raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
2020-01-19T00:53:40.5236094Z ========================== Starting Command Output ===========================
2020-01-19T00:53:40.5240323Z [command]/bin/bash --noprofile --norc /home/vsts/work/_temp/89fdb62c-760e-4425-a48e-2d0e9e6101eb.sh
2020-01-19T00:53:40.5680857Z 
2020-01-19T00:53:40.5762224Z ##[section]Finishing: Disable git automatic line ending conversion
2020-01-19T00:53:40.5769366Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/68358/merge to s
2020-01-19T00:53:40.5771186Z Task         : Get sources
2020-01-19T00:53:40.5771269Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-01-19T00:53:40.5771306Z Version      : 1.0.0
2020-01-19T00:53:40.5771339Z Author       : Microsoft
---
2020-01-19T00:53:46.2007720Z ##[command]git remote add origin https://github.com/rust-lang/rust
2020-01-19T00:53:46.2469771Z ##[command]git config gc.auto 0
2020-01-19T00:53:46.2539010Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2020-01-19T00:53:46.2595619Z ##[command]git config --get-all http.proxy
2020-01-19T00:53:46.2757410Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/68358/merge:refs/remotes/pull/68358/merge
---
2020-01-19T01:49:35.5149253Z .................................................................................................... 1700/9540
2020-01-19T01:49:42.4357499Z .................................................................................................... 1800/9540
2020-01-19T01:49:54.5865159Z ...................i................................................................................ 1900/9540
2020-01-19T01:50:01.9738941Z .................................................................................................... 2000/9540
2020-01-19T01:50:18.5317962Z .........iiiii...................................................................................... 2100/9540
2020-01-19T01:50:28.5163754Z .................................................................................................... 2300/9540
2020-01-19T01:50:30.9164233Z .................................................................................................... 2400/9540
2020-01-19T01:50:36.3936343Z .................................................................................................... 2500/9540
2020-01-19T01:50:57.8380704Z .................................................................................................... 2600/9540
---
2020-01-19T01:53:45.2492812Z .....................................................i...............i.............................. 4900/9540
2020-01-19T01:53:53.4996428Z .................................................................................................... 5000/9540
2020-01-19T01:54:01.5284469Z ................................................................................................i... 5100/9540
2020-01-19T01:54:06.8571910Z .................................................................................................... 5200/9540
2020-01-19T01:54:17.6304368Z ....................................................................ii.ii...........i............... 5300/9540
2020-01-19T01:54:26.5402163Z .....i.............................................................................................. 5500/9540
2020-01-19T01:54:36.4480560Z .................................................................................................... 5600/9540
2020-01-19T01:54:42.7806978Z ......................................................i............................................. 5700/9540
2020-01-19T01:54:49.5331266Z .................................................................................................... 5800/9540
2020-01-19T01:54:49.5331266Z .................................................................................................... 5800/9540
2020-01-19T01:54:59.4308700Z .................................................................................................... 5900/9540
2020-01-19T01:55:06.0772745Z ............................................ii...i..ii...........i.................................. 6000/9540
2020-01-19T01:55:27.2775928Z .................................................................................................... 6200/9540
2020-01-19T01:55:35.1912033Z .................................................................................................... 6300/9540
2020-01-19T01:55:35.1912033Z .................................................................................................... 6300/9540
2020-01-19T01:55:45.0614625Z ........................................................................i..ii....................... 6400/9540
2020-01-19T01:56:14.0288459Z .................................................................................................... 6600/9540
2020-01-19T01:56:16.9047381Z ................................................i................................................... 6700/9540
2020-01-19T01:56:18.9875178Z .................................................................................................... 6800/9540
2020-01-19T01:56:21.1827391Z ...............................................i.................................................... 6900/9540
---
2020-01-19T01:57:55.7721471Z .................................................................................................... 7500/9540
2020-01-19T01:58:00.2044904Z .................................................................................................... 7600/9540
2020-01-19T01:58:05.6208917Z .................................................................................................... 7700/9540
2020-01-19T01:58:11.9524722Z .................................................................................................... 7800/9540
2020-01-19T01:58:23.1610544Z ..................................................................................................ii 7900/9540
2020-01-19T01:58:29.8130513Z iiiii............................................................................................... 8000/9540
2020-01-19T01:58:44.7911472Z ..........................................................................................FF........ 8200/9540
2020-01-19T01:58:56.1954706Z .................................................................................................... 8300/9540
2020-01-19T01:59:08.3299847Z .................................................................................................... 8400/9540
2020-01-19T01:59:13.9401110Z .................................................................................................... 8500/9540
---
2020-01-19T02:01:06.1189990Z ---- [ui] ui/specialization/soundness/partial_eq_range_inclusive.rs stdout ----
2020-01-19T02:01:06.1190208Z 
2020-01-19T02:01:06.1190563Z error: test compilation failed although it shouldn't!
2020-01-19T02:01:06.1190766Z status: exit code: 1
2020-01-19T02:01:06.1191619Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/specialization/soundness/partial_eq_range_inclusive.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-C" "prefer-dynamic" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/specialization/soundness/partial_eq_range_inclusive/a" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/specialization/soundness/partial_eq_range_inclusive/auxiliary"
2020-01-19T02:01:06.1192197Z ------------------------------------------
2020-01-19T02:01:06.1192350Z 
2020-01-19T02:01:06.1194191Z ------------------------------------------
2020-01-19T02:01:06.1194508Z stderr:
2020-01-19T02:01:06.1194508Z stderr:
2020-01-19T02:01:06.1195080Z ------------------------------------------
2020-01-19T02:01:06.1195634Z error[E0369]: binary operation `==` cannot be applied to type `std::cell::Ref<'_, std::vec::Vec<&str>>`
2020-01-19T02:01:06.1196186Z   --> /checkout/src/test/ui/specialization/soundness/partial_eq_range_inclusive.rs:34:5
2020-01-19T02:01:06.1196729Z LL |     assert_eq!(values.borrow(), Vec::new());
2020-01-19T02:01:06.1196873Z    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2020-01-19T02:01:06.1197000Z    |     |
2020-01-19T02:01:06.1197335Z    |     std::cell::Ref<'_, std::vec::Vec<&str>>
2020-01-19T02:01:06.1197335Z    |     std::cell::Ref<'_, std::vec::Vec<&str>>
2020-01-19T02:01:06.1197537Z    |     std::vec::Vec<_>
2020-01-19T02:01:06.1197682Z    |
2020-01-19T02:01:06.1198088Z    = note: an implementation of `std::cmp::PartialEq` might be missing for `std::cell::Ref<'_, std::vec::Vec<&str>>`
2020-01-19T02:01:06.1198993Z 
2020-01-19T02:01:06.1199194Z error: aborting due to previous error
2020-01-19T02:01:06.1199314Z 
2020-01-19T02:01:06.1199755Z For more information about this error, try `rustc --explain E0369`.
---
2020-01-19T02:01:06.1205600Z 
2020-01-19T02:01:06.1205811Z warning: unused variable: `other`
2020-01-19T02:01:06.1206262Z   --> $DIR/partial_ord_slice.rs:25:19
2020-01-19T02:01:06.1206698Z    |
2020-01-19T02:01:06.1207256Z LL |     fn cmp(&self, other: &Self) -> Ordering {
2020-01-19T02:01:06.1207464Z    |                   ^^^^^ help: consider prefixing with an underscore: `_other`
2020-01-19T02:01:06.1207739Z warning: unused comparison that must be used
2020-01-19T02:01:06.1208247Z   --> $DIR/partial_ord_slice.rs:37:9
2020-01-19T02:01:06.1208420Z    |
2020-01-19T02:01:06.1208420Z    |
2020-01-19T02:01:06.1208547Z LL |         &y[..] <= &y[..];
2020-01-19T02:01:06.1209035Z    |
2020-01-19T02:01:06.1209198Z    = note: `#[warn(unused_must_use)]` on by default
2020-01-19T02:01:06.1209315Z 
2020-01-19T02:01:06.1209427Z 
2020-01-19T02:01:06.1209427Z 
2020-01-19T02:01:06.1209539Z 
2020-01-19T02:01:06.1209651Z 
2020-01-19T02:01:06.1209784Z The actual stderr differed from the expected stderr.
2020-01-19T02:01:06.1210457Z Actual stderr saved to /checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/specialization/soundness/partial_ord_slice/partial_ord_slice.stderr
2020-01-19T02:01:06.1210897Z To update references, rerun the tests and pass the `--bless` flag
2020-01-19T02:01:06.1211361Z To only update this specific test, also pass `--test-args specialization/soundness/partial_ord_slice.rs`
2020-01-19T02:01:06.1211684Z error: 1 errors occurred comparing output.
2020-01-19T02:01:06.1211854Z status: exit code: 0
2020-01-19T02:01:06.1211854Z status: exit code: 0
2020-01-19T02:01:06.1213119Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/specialization/soundness/partial_ord_slice.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-C" "prefer-dynamic" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/specialization/soundness/partial_ord_slice/a" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/specialization/soundness/partial_ord_slice/auxiliary"
2020-01-19T02:01:06.1227330Z ------------------------------------------
2020-01-19T02:01:06.1227725Z 
2020-01-19T02:01:06.1228097Z ------------------------------------------
2020-01-19T02:01:06.1228277Z stderr:
---
2020-01-19T02:01:06.1247439Z 
2020-01-19T02:01:06.1247569Z warning: unused variable: `other`
2020-01-19T02:01:06.1248021Z   --> /checkout/src/test/ui/specialization/soundness/partial_ord_slice.rs:25:19
2020-01-19T02:01:06.1248987Z    |
2020-01-19T02:01:06.1249494Z LL |     fn cmp(&self, other: &Self) -> Ordering {
2020-01-19T02:01:06.1249747Z    |                   ^^^^^ help: consider prefixing with an underscore: `_other`
2020-01-19T02:01:06.1249998Z warning: unused comparison that must be used
2020-01-19T02:01:06.1250396Z   --> /checkout/src/test/ui/specialization/soundness/partial_ord_slice.rs:37:9
2020-01-19T02:01:06.1250591Z    |
2020-01-19T02:01:06.1250591Z    |
2020-01-19T02:01:06.1250718Z LL |         &y[..] <= &y[..];
2020-01-19T02:01:06.1251010Z    |
2020-01-19T02:01:06.1251138Z    = note: `#[warn(unused_must_use)]` on by default
2020-01-19T02:01:06.1251245Z 
2020-01-19T02:01:06.1251351Z 
---
2020-01-19T02:01:06.1254814Z thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:387:22
2020-01-19T02:01:06.1255102Z note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
2020-01-19T02:01:06.1255260Z 
2020-01-19T02:01:06.1255428Z 
2020-01-19T02:01:06.1257249Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--src-base" "/checkout/src/test/ui" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "ui" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/usr/lib/llvm-7/bin/FileCheck" "--host-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--gdb" "/usr/bin/gdb" "--quiet" "--llvm-version" "7.0.0\n" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--llvm-cxxflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
2020-01-19T02:01:06.1257855Z 
2020-01-19T02:01:06.1257963Z 
2020-01-19T02:01:06.1261144Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
2020-01-19T02:01:06.1261336Z Build completed unsuccessfully in 1:01:09
2020-01-19T02:01:06.1261336Z Build completed unsuccessfully in 1:01:09
2020-01-19T02:01:06.1321845Z == clock drift check ==
2020-01-19T02:01:06.1334280Z   local time: Sun Jan 19 02:01:06 UTC 2020
2020-01-19T02:01:06.6878784Z   network time: Sun, 19 Jan 2020 02:01:06 GMT
2020-01-19T02:01:06.6879509Z == end clock drift check ==
2020-01-19T02:01:07.1742311Z 
2020-01-19T02:01:07.1835227Z ##[error]Bash exited with code '1'.
2020-01-19T02:01:07.1848073Z ##[section]Finishing: Run build
2020-01-19T02:01:07.1869478Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/68358/merge to s
2020-01-19T02:01:07.1871441Z Task         : Get sources
2020-01-19T02:01:07.1871479Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-01-19T02:01:07.1871536Z Version      : 1.0.0
2020-01-19T02:01:07.1871588Z Author       : Microsoft
2020-01-19T02:01:07.1871588Z Author       : Microsoft
2020-01-19T02:01:07.1871628Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
2020-01-19T02:01:07.1871670Z ==============================================================================
2020-01-19T02:01:07.5846374Z Cleaning any cached credential from repository: rust-lang/rust (GitHub)
2020-01-19T02:01:07.5887631Z ##[section]Finishing: Checkout rust-lang/rust@refs/pull/68358/merge to s
2020-01-19T02:01:07.6000979Z Cleaning up task key
2020-01-19T02:01:07.6001748Z Start cleaning up orphan processes.
2020-01-19T02:01:07.6107823Z Terminate orphan process: pid (3794) (python)
2020-01-19T02:01:07.6952760Z ##[section]Finishing: Finalize Job

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Jan 19, 2020

☀️ Try build successful - checks-azure
Build commit: 7aaf762 (7aaf7627e1102ae1adad316889196660d88879c8)

@rust-timer

This comment has been minimized.

Copy link

rust-timer commented Jan 19, 2020

Queued 7aaf762 with parent 1ce08f9, future comparison URL.

@matthewjasper matthewjasper force-pushed the matthewjasper:spec-fix branch from 70e0084 to 79e0098 Jan 19, 2020
src/libcore/iter/adapters/mod.rs Outdated Show resolved Hide resolved
src/libcore/iter/adapters/mod.rs Outdated Show resolved Hide resolved
@rust-highfive

This comment was marked as resolved.

Copy link
Collaborator

rust-highfive commented Jan 19, 2020

The job x86_64-gnu-llvm-7 of your PR failed (pretty log, raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
2020-01-19T09:33:16.6562238Z ========================== Starting Command Output ===========================
2020-01-19T09:33:16.6565542Z [command]/bin/bash --noprofile --norc /home/vsts/work/_temp/10a7f712-b07b-4f94-828a-4aa8fb70a3ba.sh
2020-01-19T09:33:16.6565731Z 
2020-01-19T09:33:16.6569195Z ##[section]Finishing: Disable git automatic line ending conversion
2020-01-19T09:33:16.6584095Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/68358/merge to s
2020-01-19T09:33:16.6586270Z Task         : Get sources
2020-01-19T09:33:16.6586302Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-01-19T09:33:16.6586333Z Version      : 1.0.0
2020-01-19T09:33:16.6586535Z Author       : Microsoft
---
2020-01-19T09:33:17.6870148Z ##[command]git remote add origin https://github.com/rust-lang/rust
2020-01-19T09:33:17.6881502Z ##[command]git config gc.auto 0
2020-01-19T09:33:17.6884062Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2020-01-19T09:33:17.6886204Z ##[command]git config --get-all http.proxy
2020-01-19T09:33:17.6903222Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/68358/merge:refs/remotes/pull/68358/merge
---
2020-01-19T10:31:34.7801899Z .................................................................................................... 1700/9540
2020-01-19T10:31:41.4461048Z .................................................................................................... 1800/9540
2020-01-19T10:31:53.4454515Z ...................i................................................................................ 1900/9540
2020-01-19T10:32:00.7708952Z .................................................................................................... 2000/9540
2020-01-19T10:32:16.7858785Z .........iiiii...................................................................................... 2100/9540
2020-01-19T10:32:26.7599313Z .................................................................................................... 2300/9540
2020-01-19T10:32:29.3032262Z .................................................................................................... 2400/9540
2020-01-19T10:32:34.8944327Z .................................................................................................... 2500/9540
2020-01-19T10:32:56.7907505Z .................................................................................................... 2600/9540
---
2020-01-19T10:35:45.1257375Z .....................................................i...............i.............................. 4900/9540
2020-01-19T10:35:53.3449328Z .................................................................................................... 5000/9540
2020-01-19T10:36:01.6187669Z ................................................................................................i... 5100/9540
2020-01-19T10:36:06.9485563Z .................................................................................................... 5200/9540
2020-01-19T10:36:18.2141815Z ....................................................................ii.ii...........i............... 5300/9540
2020-01-19T10:36:27.7452603Z .....i.............................................................................................. 5500/9540
2020-01-19T10:36:38.4205764Z .................................................................................................... 5600/9540
2020-01-19T10:36:45.3419421Z ......................................................i............................................. 5700/9540
2020-01-19T10:36:52.6459069Z .................................................................................................... 5800/9540
2020-01-19T10:36:52.6459069Z .................................................................................................... 5800/9540
2020-01-19T10:37:03.1625754Z .................................................................................................... 5900/9540
2020-01-19T10:37:10.5164735Z ............................................ii...i..ii...........i.................................. 6000/9540
2020-01-19T10:37:33.4176717Z .................................................................................................... 6200/9540
2020-01-19T10:37:42.0914446Z .................................................................................................... 6300/9540
2020-01-19T10:37:42.0914446Z .................................................................................................... 6300/9540
2020-01-19T10:37:52.7449971Z ........................................................................i..ii....................... 6400/9540
2020-01-19T10:38:27.9937314Z .................................................................................................... 6600/9540
2020-01-19T10:38:31.3275940Z ................................................i................................................... 6700/9540
2020-01-19T10:38:33.5904327Z .................................................................................................... 6800/9540
2020-01-19T10:38:36.0426420Z ...............................................i.................................................... 6900/9540
---
2020-01-19T10:40:19.6821502Z .................................................................................................... 7500/9540
2020-01-19T10:40:24.5815064Z .................................................................................................... 7600/9540
2020-01-19T10:40:30.5752355Z .................................................................................................... 7700/9540
2020-01-19T10:40:37.5243711Z .................................................................................................... 7800/9540
2020-01-19T10:40:48.8550803Z ..................................................................................................ii 7900/9540
2020-01-19T10:40:55.6593177Z iiiii............................................................................................... 8000/9540
2020-01-19T10:41:11.3969310Z ..........................................................................................F......... 8200/9540
2020-01-19T10:41:23.3938370Z .................................................................................................... 8300/9540
2020-01-19T10:41:36.7188057Z .................................................................................................... 8400/9540
2020-01-19T10:41:42.9080590Z .................................................................................................... 8500/9540
---
2020-01-19T10:43:44.5130925Z ---- [ui] ui/specialization/soundness/partial_eq_range_inclusive.rs stdout ----
2020-01-19T10:43:44.5131271Z 
2020-01-19T10:43:44.5131846Z error: test compilation failed although it shouldn't!
2020-01-19T10:43:44.5132174Z status: exit code: 1
2020-01-19T10:43:44.5133308Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/specialization/soundness/partial_eq_range_inclusive.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-C" "prefer-dynamic" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/specialization/soundness/partial_eq_range_inclusive/a" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/specialization/soundness/partial_eq_range_inclusive/auxiliary"
2020-01-19T10:43:44.5134418Z ------------------------------------------
2020-01-19T10:43:44.5134716Z 
2020-01-19T10:43:44.5135510Z ------------------------------------------
2020-01-19T10:43:44.5135789Z stderr:
2020-01-19T10:43:44.5135789Z stderr:
2020-01-19T10:43:44.5136367Z ------------------------------------------
2020-01-19T10:43:44.5137119Z error[E0369]: binary operation `==` cannot be applied to type `std::cell::Ref<'_, std::vec::Vec<&str>>`
2020-01-19T10:43:44.5137811Z   --> /checkout/src/test/ui/specialization/soundness/partial_eq_range_inclusive.rs:34:5
2020-01-19T10:43:44.5138398Z LL |     assert_eq!(values.borrow(), Vec::new());
2020-01-19T10:43:44.5138658Z    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2020-01-19T10:43:44.5138881Z    |     |
2020-01-19T10:43:44.5139359Z    |     std::cell::Ref<'_, std::vec::Vec<&str>>
2020-01-19T10:43:44.5139359Z    |     std::cell::Ref<'_, std::vec::Vec<&str>>
2020-01-19T10:43:44.5140020Z    |     std::vec::Vec<_>
2020-01-19T10:43:44.5140377Z    |
2020-01-19T10:43:44.5140976Z    = note: an implementation of `std::cmp::PartialEq` might be missing for `std::cell::Ref<'_, std::vec::Vec<&str>>`
2020-01-19T10:43:44.5141945Z 
2020-01-19T10:43:44.5142183Z error: aborting due to previous error
2020-01-19T10:43:44.5142403Z 
2020-01-19T10:43:44.5143016Z For more information about this error, try `rustc --explain E0369`.
---
2020-01-19T10:43:44.5149368Z thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:387:22
2020-01-19T10:43:44.5149745Z note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
2020-01-19T10:43:44.5162538Z 
2020-01-19T10:43:44.5162883Z 
2020-01-19T10:43:44.5165291Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--src-base" "/checkout/src/test/ui" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "ui" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/usr/lib/llvm-7/bin/FileCheck" "--host-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--gdb" "/usr/bin/gdb" "--quiet" "--llvm-version" "7.0.0\n" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--llvm-cxxflags" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
2020-01-19T10:43:44.5166799Z 
2020-01-19T10:43:44.5166875Z 
2020-01-19T10:43:44.5170913Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
2020-01-19T10:43:44.5171277Z Build completed unsuccessfully in 1:04:20
2020-01-19T10:43:44.5171277Z Build completed unsuccessfully in 1:04:20
2020-01-19T10:43:44.5223575Z == clock drift check ==
2020-01-19T10:43:44.5255702Z   local time: Sun Jan 19 10:43:44 UTC 2020
2020-01-19T10:43:44.8231997Z   network time: Sun, 19 Jan 2020 10:43:44 GMT
2020-01-19T10:43:44.8238104Z == end clock drift check ==
2020-01-19T10:43:45.3947213Z 
2020-01-19T10:43:45.4068937Z ##[error]Bash exited with code '1'.
2020-01-19T10:43:45.4082385Z ##[section]Finishing: Run build
2020-01-19T10:43:45.4103421Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/68358/merge to s
2020-01-19T10:43:45.4105487Z Task         : Get sources
2020-01-19T10:43:45.4105534Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-01-19T10:43:45.4105615Z Version      : 1.0.0
2020-01-19T10:43:45.4105655Z Author       : Microsoft
2020-01-19T10:43:45.4105655Z Author       : Microsoft
2020-01-19T10:43:45.4105701Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
2020-01-19T10:43:45.4105767Z ==============================================================================
2020-01-19T10:43:45.8616308Z Cleaning any cached credential from repository: rust-lang/rust (GitHub)
2020-01-19T10:43:45.8660136Z ##[section]Finishing: Checkout rust-lang/rust@refs/pull/68358/merge to s
2020-01-19T10:43:45.8776493Z Cleaning up task key
2020-01-19T10:43:45.8777344Z Start cleaning up orphan processes.
2020-01-19T10:43:45.8893286Z Terminate orphan process: pid (3417) (python)
2020-01-19T10:43:45.9165626Z ##[section]Finishing: Finalize Job

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@rust-highfive

This comment was marked as resolved.

Copy link
Collaborator

rust-highfive commented Jan 30, 2020

The job x86_64-gnu-llvm-7 of your PR failed (pretty log, raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
2020-01-30T20:10:12.4333080Z ========================== Starting Command Output ===========================
2020-01-30T20:10:12.4347297Z [command]/bin/bash --noprofile --norc /home/vsts/work/_temp/c10fd49e-420c-467e-b9c5-a5807f4367c9.sh
2020-01-30T20:10:12.4537911Z 
2020-01-30T20:10:12.4587056Z ##[section]Finishing: Disable git automatic line ending conversion
2020-01-30T20:10:12.4592940Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/68358/merge to s
2020-01-30T20:10:12.4594476Z Task         : Get sources
2020-01-30T20:10:12.4594511Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-01-30T20:10:12.4594544Z Version      : 1.0.0
2020-01-30T20:10:12.4594615Z Author       : Microsoft
---
2020-01-30T20:10:13.2248452Z ##[command]git remote add origin https://github.com/rust-lang/rust
2020-01-30T20:10:13.2484658Z ##[command]git config gc.auto 0
2020-01-30T20:10:13.2487489Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2020-01-30T20:10:13.2524698Z ##[command]git config --get-all http.proxy
2020-01-30T20:10:13.2657773Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/68358/merge:refs/remotes/pull/68358/merge
---
2020-01-30T20:54:27.0544199Z .................................................................................................... 1700/9560
2020-01-30T20:54:31.1210503Z .................................................................................................... 1800/9560
2020-01-30T20:54:40.9717117Z .........................i.......................................................................... 1900/9560
2020-01-30T20:54:46.2485305Z .................................................................................................... 2000/9560
2020-01-30T20:54:56.6728598Z ...............iiiii................................................................................ 2100/9560
2020-01-30T20:55:04.3631821Z .................................................................................................... 2300/9560
2020-01-30T20:55:06.2059213Z .................................................................................................... 2400/9560
2020-01-30T20:55:10.2451161Z .................................................................................................... 2500/9560
2020-01-30T20:55:25.1765125Z .................................................................................................... 2600/9560
---
2020-01-30T20:57:20.0459603Z .................................................................................................... 4800/9560
2020-01-30T20:57:23.7677402Z ..........................................................i...............i......................... 4900/9560
2020-01-30T20:57:29.5952034Z .................................................................................................... 5000/9560
2020-01-30T20:57:35.2640917Z .................................................................................................... 5100/9560
2020-01-30T20:57:38.8048683Z .i.................................................................................................. 5200/9560
2020-01-30T20:57:46.5622998Z ..........................................................................ii.ii........i...i........ 5300/9560
2020-01-30T20:57:52.7833142Z ............i....................................................................................... 5500/9560
2020-01-30T20:57:59.9539519Z .................................................................................................... 5600/9560
2020-01-30T20:58:04.6457174Z .............................................................i...................................... 5700/9560
2020-01-30T20:58:09.9413625Z .................................................................................................... 5800/9560
2020-01-30T20:58:09.9413625Z .................................................................................................... 5800/9560
2020-01-30T20:58:15.8707241Z .................................................................................................... 5900/9560
2020-01-30T20:58:22.1215956Z ....................................................ii...i..ii...........i.......................... 6000/9560
2020-01-30T20:58:41.1305052Z .................................................................................................... 6200/9560
2020-01-30T20:58:47.4431797Z .................................................................................................... 6300/9560
2020-01-30T20:58:47.4431797Z .................................................................................................... 6300/9560
2020-01-30T20:58:51.4471859Z ................................................................................i..ii............... 6400/9560
2020-01-30T20:59:14.2891920Z .................................................................................................... 6600/9560
2020-01-30T20:59:19.1344192Z ........................................................i........................................... 6700/9560
2020-01-30T20:59:20.9814775Z .................................................................................................... 6800/9560
2020-01-30T20:59:22.9682394Z .......................................................i............................................ 6900/9560
---
2020-01-30T21:00:39.7746293Z .................................................................................................... 7600/9560
2020-01-30T21:00:44.0703749Z .................................................................................................... 7700/9560
2020-01-30T21:00:49.3025929Z .................................................................................................... 7800/9560
2020-01-30T21:00:57.6930185Z .................................................................................................... 7900/9560
2020-01-30T21:01:02.5260267Z ...........iiiiiii.i................................................................................ 8000/9560
2020-01-30T21:01:13.5983975Z .................................................................................................... 8200/9560
2020-01-30T21:01:22.1267045Z ....F............................................................................................... 8300/9560
2020-01-30T21:01:32.3697872Z .................................................................................................... 8400/9560
2020-01-30T21:01:37.6297226Z .................................................................................................... 8500/9560
---
2020-01-30T21:03:08.3449068Z ---- [ui] ui/specialization/soundness/partial_eq_range_inclusive.rs stdout ----
2020-01-30T21:03:08.3449285Z 
2020-01-30T21:03:08.3449593Z error: test compilation failed although it shouldn't!
2020-01-30T21:03:08.3449749Z status: exit code: 1
2020-01-30T21:03:08.3450515Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/specialization/soundness/partial_eq_range_inclusive.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-C" "prefer-dynamic" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/specialization/soundness/partial_eq_range_inclusive/a" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/specialization/soundness/partial_eq_range_inclusive/auxiliary"
2020-01-30T21:03:08.3450993Z ------------------------------------------
2020-01-30T21:03:08.3451139Z 
2020-01-30T21:03:08.3451428Z ------------------------------------------
2020-01-30T21:03:08.3451578Z stderr:
2020-01-30T21:03:08.3451578Z stderr:
2020-01-30T21:03:08.3451847Z ------------------------------------------
2020-01-30T21:03:08.3452337Z error[E0369]: binary operation `==` cannot be applied to type `std::cell::Ref<'_, std::vec::Vec<&str>>`
2020-01-30T21:03:08.3452689Z   --> /checkout/src/test/ui/specialization/soundness/partial_eq_range_inclusive.rs:34:5
2020-01-30T21:03:08.3452998Z LL |     assert_eq!(values.borrow(), Vec::new());
2020-01-30T21:03:08.3453138Z    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2020-01-30T21:03:08.3453286Z    |     |
2020-01-30T21:03:08.3453563Z    |     std::cell::Ref<'_, std::vec::Vec<&str>>
2020-01-30T21:03:08.3453563Z    |     std::cell::Ref<'_, std::vec::Vec<&str>>
2020-01-30T21:03:08.3453712Z    |     std::vec::Vec<_>
2020-01-30T21:03:08.3453863Z    |
2020-01-30T21:03:08.3454189Z    = note: an implementation of `std::cmp::PartialEq` might be missing for `std::cell::Ref<'_, std::vec::Vec<&str>>`
2020-01-30T21:03:08.3454865Z 
2020-01-30T21:03:08.3455240Z error: aborting due to previous error
2020-01-30T21:03:08.3455407Z 
2020-01-30T21:03:08.3455743Z For more information about this error, try `rustc --explain E0369`.
---
2020-01-30T21:03:08.3466664Z thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:348:22
2020-01-30T21:03:08.3466901Z note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
2020-01-30T21:03:08.3477009Z 
2020-01-30T21:03:08.3477240Z 
2020-01-30T21:03:08.3478636Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--src-base" "/checkout/src/test/ui" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "ui" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/usr/lib/llvm-7/bin/FileCheck" "--host-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--gdb" "/usr/bin/gdb" "--quiet" "--llvm-version" "7.0.0\n" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
2020-01-30T21:03:08.3479050Z 
2020-01-30T21:03:08.3479171Z 
2020-01-30T21:03:08.3484682Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
2020-01-30T21:03:08.3484872Z Build completed unsuccessfully in 0:47:56
2020-01-30T21:03:08.3484872Z Build completed unsuccessfully in 0:47:56
2020-01-30T21:03:08.3528416Z == clock drift check ==
2020-01-30T21:03:08.3551232Z   local time: Thu Jan 30 21:03:08 UTC 2020
2020-01-30T21:03:08.9056685Z   network time: Thu, 30 Jan 2020 21:03:08 GMT
2020-01-30T21:03:08.9060969Z == end clock drift check ==
2020-01-30T21:03:09.3538387Z 
2020-01-30T21:03:09.3650997Z ##[error]Bash exited with code '1'.
2020-01-30T21:03:09.3662781Z ##[section]Finishing: Run build
2020-01-30T21:03:09.3687964Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/68358/merge to s
2020-01-30T21:03:09.3689909Z Task         : Get sources
2020-01-30T21:03:09.3689956Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-01-30T21:03:09.3690018Z Version      : 1.0.0
2020-01-30T21:03:09.3690059Z Author       : Microsoft
2020-01-30T21:03:09.3690059Z Author       : Microsoft
2020-01-30T21:03:09.3690105Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
2020-01-30T21:03:09.3690170Z ==============================================================================
2020-01-30T21:03:09.7090693Z Cleaning any cached credential from repository: rust-lang/rust (GitHub)
2020-01-30T21:03:09.7128650Z ##[section]Finishing: Checkout rust-lang/rust@refs/pull/68358/merge to s
2020-01-30T21:03:09.7235581Z Cleaning up task key
2020-01-30T21:03:09.7236257Z Start cleaning up orphan processes.
2020-01-30T21:03:09.7323978Z Terminate orphan process: pid (4545) (python)
2020-01-30T21:03:09.7521201Z ##[section]Finishing: Finalize Job

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@matthewjasper matthewjasper force-pushed the matthewjasper:spec-fix branch from 5665834 to 4896837 Jan 30, 2020
@rust-highfive

This comment was marked as resolved.

Copy link
Collaborator

rust-highfive commented Jan 30, 2020

The job x86_64-gnu-llvm-7 of your PR failed (pretty log, raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
2020-01-30T21:12:49.2461933Z ========================== Starting Command Output ===========================
2020-01-30T21:12:49.2463336Z [command]/bin/bash --noprofile --norc /home/vsts/work/_temp/dc2d8d3e-7b25-48e6-b832-92b83fc4477a.sh
2020-01-30T21:12:49.2463367Z 
2020-01-30T21:12:49.2466257Z ##[section]Finishing: Disable git automatic line ending conversion
2020-01-30T21:12:49.2471683Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/68358/merge to s
2020-01-30T21:12:49.2473213Z Task         : Get sources
2020-01-30T21:12:49.2473287Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-01-30T21:12:49.2473322Z Version      : 1.0.0
2020-01-30T21:12:49.2473355Z Author       : Microsoft
---
2020-01-30T21:12:50.0311577Z ##[command]git remote add origin https://github.com/rust-lang/rust
2020-01-30T21:12:50.0426821Z ##[command]git config gc.auto 0
2020-01-30T21:12:50.0482642Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2020-01-30T21:12:50.0530413Z ##[command]git config --get-all http.proxy
2020-01-30T21:12:50.0670282Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/68358/merge:refs/remotes/pull/68358/merge
---
2020-01-30T22:02:03.7676935Z .................................................................................................... 1700/9560
2020-01-30T22:02:08.2182897Z .................................................................................................... 1800/9560
2020-01-30T22:02:19.5080582Z .........................i.......................................................................... 1900/9560
2020-01-30T22:02:25.6641438Z .................................................................................................... 2000/9560
2020-01-30T22:02:38.5330360Z ...............iiiii................................................................................ 2100/9560
2020-01-30T22:02:47.3444704Z .................................................................................................... 2300/9560
2020-01-30T22:02:49.5245208Z .................................................................................................... 2400/9560
2020-01-30T22:02:54.1271489Z .................................................................................................... 2500/9560
2020-01-30T22:03:12.3450498Z .................................................................................................... 2600/9560
---
2020-01-30T22:05:30.2876073Z .................................................................................................... 4800/9560
2020-01-30T22:05:34.8262438Z ..........................................................i...............i......................... 4900/9560
2020-01-30T22:05:41.9409381Z .................................................................................................... 5000/9560
2020-01-30T22:05:48.9489534Z .................................................................................................... 5100/9560
2020-01-30T22:05:53.2566264Z .i.................................................................................................. 5200/9560
2020-01-30T22:06:02.8657700Z ..........................................................................ii.ii........i...i........ 5300/9560
2020-01-30T22:06:10.5380372Z ............i....................................................................................... 5500/9560
2020-01-30T22:06:19.2981362Z .................................................................................................... 5600/9560
2020-01-30T22:06:24.9634804Z .............................................................i...................................... 5700/9560
2020-01-30T22:06:31.4604210Z .................................................................................................... 5800/9560
2020-01-30T22:06:31.4604210Z .................................................................................................... 5800/9560
2020-01-30T22:06:38.6042397Z .................................................................................................... 5900/9560
2020-01-30T22:06:46.3223631Z ....................................................ii...i..ii...........i.......................... 6000/9560
2020-01-30T22:07:06.5847865Z .................................................................................................... 6200/9560
2020-01-30T22:07:10.2211777Z .................................................................................................... 6300/9560
2020-01-30T22:07:10.2211777Z .................................................................................................... 6300/9560
2020-01-30T22:07:14.3166193Z ................................................................................i..ii............... 6400/9560
2020-01-30T22:07:38.7880832Z .................................................................................................... 6600/9560
2020-01-30T22:07:43.8379219Z ........................................................i........................................... 6700/9560
2020-01-30T22:07:45.8492811Z .................................................................................................... 6800/9560
2020-01-30T22:07:47.9442145Z .......................................................i............................................ 6900/9560
---
2020-01-30T22:09:20.4235589Z .................................................................................................... 7600/9560
2020-01-30T22:09:25.4135635Z .................................................................................................... 7700/9560
2020-01-30T22:09:31.5088234Z .................................................................................................... 7800/9560
2020-01-30T22:09:41.0811936Z .................................................................................................... 7900/9560
2020-01-30T22:09:46.4970630Z ...........iiiiiii.i................................................................................ 8000/9560
2020-01-30T22:09:59.2161374Z .................................................................................................... 8200/9560
2020-01-30T22:10:08.7022423Z ....F............................................................................................... 8300/9560
2020-01-30T22:10:20.6598640Z .................................................................................................... 8400/9560
2020-01-30T22:10:26.7008634Z .................................................................................................... 8500/9560
---
2020-01-30T22:12:08.3957852Z ---- [ui] ui/specialization/soundness/partial_eq_range_inclusive.rs stdout ----
2020-01-30T22:12:08.3958072Z 
2020-01-30T22:12:08.3958489Z error: test compilation failed although it shouldn't!
2020-01-30T22:12:08.3958719Z status: exit code: 1
2020-01-30T22:12:08.3959727Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/specialization/soundness/partial_eq_range_inclusive.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-C" "prefer-dynamic" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/specialization/soundness/partial_eq_range_inclusive/a" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/specialization/soundness/partial_eq_range_inclusive/auxiliary"
2020-01-30T22:12:08.3960384Z ------------------------------------------
2020-01-30T22:12:08.3960589Z 
2020-01-30T22:12:08.3960967Z ------------------------------------------
2020-01-30T22:12:08.3961346Z stderr:
2020-01-30T22:12:08.3961346Z stderr:
2020-01-30T22:12:08.3961758Z ------------------------------------------
2020-01-30T22:12:08.3962672Z error[E0369]: binary operation `==` cannot be applied to type `std::cell::Ref<'_, std::vec::Vec<&str>>`
2020-01-30T22:12:08.3963175Z   --> /checkout/src/test/ui/specialization/soundness/partial_eq_range_inclusive.rs:34:5
2020-01-30T22:12:08.3964239Z LL |     assert_eq!(values.borrow(), Vec::new());
2020-01-30T22:12:08.3964412Z    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2020-01-30T22:12:08.3964559Z    |     |
2020-01-30T22:12:08.3964962Z    |     std::cell::Ref<'_, std::vec::Vec<&str>>
2020-01-30T22:12:08.3964962Z    |     std::cell::Ref<'_, std::vec::Vec<&str>>
2020-01-30T22:12:08.3965142Z    |     std::vec::Vec<_>
2020-01-30T22:12:08.3965391Z    |
2020-01-30T22:12:08.3965827Z    = note: an implementation of `std::cmp::PartialEq` might be missing for `std::cell::Ref<'_, std::vec::Vec<&str>>`
2020-01-30T22:12:08.3966477Z 
2020-01-30T22:12:08.3966650Z error: aborting due to previous error
2020-01-30T22:12:08.3966777Z 
2020-01-30T22:12:08.3967143Z For more information about this error, try `rustc --explain E0369`.
---
2020-01-30T22:12:08.3980503Z thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:348:22
2020-01-30T22:12:08.3980829Z note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
2020-01-30T22:12:08.3996493Z 
2020-01-30T22:12:08.3996711Z 
2020-01-30T22:12:08.3999828Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--src-base" "/checkout/src/test/ui" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "ui" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/usr/lib/llvm-7/bin/FileCheck" "--host-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--gdb" "/usr/bin/gdb" "--quiet" "--llvm-version" "7.0.0\n" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
2020-01-30T22:12:08.4002815Z 
2020-01-30T22:12:08.4002957Z 
2020-01-30T22:12:08.4013805Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
2020-01-30T22:12:08.4014027Z Build completed unsuccessfully in 0:53:59
2020-01-30T22:12:08.4014027Z Build completed unsuccessfully in 0:53:59
2020-01-30T22:12:08.4070811Z == clock drift check ==
2020-01-30T22:12:08.4087422Z   local time: Thu Jan 30 22:12:08 UTC 2020
2020-01-30T22:12:08.7026933Z   network time: Thu, 30 Jan 2020 22:12:08 GMT
2020-01-30T22:12:08.7030586Z == end clock drift check ==
2020-01-30T22:12:09.1222395Z 
2020-01-30T22:12:09.1344492Z ##[error]Bash exited with code '1'.
2020-01-30T22:12:09.1360316Z ##[section]Finishing: Run build
2020-01-30T22:12:09.1392325Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/68358/merge to s
2020-01-30T22:12:09.1395989Z Task         : Get sources
2020-01-30T22:12:09.1396041Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-01-30T22:12:09.1396096Z Version      : 1.0.0
2020-01-30T22:12:09.1396158Z Author       : Microsoft
2020-01-30T22:12:09.1396158Z Author       : Microsoft
2020-01-30T22:12:09.1396209Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
2020-01-30T22:12:09.1396263Z ==============================================================================
2020-01-30T22:12:09.5300483Z Cleaning any cached credential from repository: rust-lang/rust (GitHub)
2020-01-30T22:12:09.5341963Z ##[section]Finishing: Checkout rust-lang/rust@refs/pull/68358/merge to s
2020-01-30T22:12:09.5472084Z Cleaning up task key
2020-01-30T22:12:09.5473337Z Start cleaning up orphan processes.
2020-01-30T22:12:09.5620894Z Terminate orphan process: pid (3560) (python)
2020-01-30T22:12:09.5853363Z ##[section]Finishing: Finalize Job

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@matthewjasper matthewjasper changed the title Remove some unsound or hard to verify specializations Remove some unsound specializations Jan 31, 2020
@matthewjasper matthewjasper force-pushed the matthewjasper:spec-fix branch from 4896837 to 0998993 Jan 31, 2020
@rust-highfive

This comment was marked as resolved.

Copy link
Collaborator

rust-highfive commented Jan 31, 2020

The job x86_64-gnu-llvm-7 of your PR failed (pretty log, raw log). Through arcane magic we have determined that the following fragments from the build log may contain information about the problem.

Click to expand the log.
2020-01-31T22:28:55.4714302Z ========================== Starting Command Output ===========================
2020-01-31T22:28:55.4717097Z [command]/bin/bash --noprofile --norc /home/vsts/work/_temp/17b42e67-6cbb-4d3f-8aa8-8a2ca7631d6d.sh
2020-01-31T22:28:55.4717134Z 
2020-01-31T22:28:55.4719422Z ##[section]Finishing: Disable git automatic line ending conversion
2020-01-31T22:28:55.4725935Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/68358/merge to s
2020-01-31T22:28:55.4727565Z Task         : Get sources
2020-01-31T22:28:55.4727603Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-01-31T22:28:55.4727639Z Version      : 1.0.0
2020-01-31T22:28:55.4727721Z Author       : Microsoft
---
2020-01-31T22:28:56.4732046Z ##[command]git remote add origin https://github.com/rust-lang/rust
2020-01-31T22:28:56.4743324Z ##[command]git config gc.auto 0
2020-01-31T22:28:56.4745680Z ##[command]git config --get-all http.https://github.com/rust-lang/rust.extraheader
2020-01-31T22:28:56.4747567Z ##[command]git config --get-all http.proxy
2020-01-31T22:28:56.4754394Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules --depth=2 origin +refs/heads/*:refs/remotes/origin/* +refs/pull/68358/merge:refs/remotes/pull/68358/merge
---
2020-01-31T23:23:54.4840473Z .................................................................................................... 1700/9561
2020-01-31T23:23:59.3931684Z .................................................................................................... 1800/9561
2020-01-31T23:24:11.7344729Z .........................i.......................................................................... 1900/9561
2020-01-31T23:24:18.5740755Z .................................................................................................... 2000/9561
2020-01-31T23:24:32.7789236Z ...............iiiii................................................................................ 2100/9561
2020-01-31T23:24:42.4887082Z .................................................................................................... 2300/9561
2020-01-31T23:24:44.8265543Z .................................................................................................... 2400/9561
2020-01-31T23:24:49.9913350Z .................................................................................................... 2500/9561
2020-01-31T23:25:10.8256628Z .................................................................................................... 2600/9561
---
2020-01-31T23:27:42.0001893Z .................................................................................................... 4800/9561
2020-01-31T23:27:46.9558428Z ..........................................................i...............i......................... 4900/9561
2020-01-31T23:27:54.6627944Z .................................................................................................... 5000/9561
2020-01-31T23:28:02.4556135Z .................................................................................................... 5100/9561
2020-01-31T23:28:07.1173746Z .i.................................................................................................. 5200/9561
2020-01-31T23:28:17.7444563Z ..........................................................................ii.ii........i...i........ 5300/9561
2020-01-31T23:28:25.9759853Z ............i....................................................................................... 5500/9561
2020-01-31T23:28:35.7443079Z .................................................................................................... 5600/9561
2020-01-31T23:28:41.9075849Z .............................................................i...................................... 5700/9561
2020-01-31T23:28:48.8981568Z .................................................................................................... 5800/9561
2020-01-31T23:28:48.8981568Z .................................................................................................... 5800/9561
2020-01-31T23:28:56.8434055Z .................................................................................................... 5900/9561
2020-01-31T23:29:05.7686136Z ....................................................ii...i..ii...........i.......................... 6000/9561
2020-01-31T23:29:27.1554081Z .................................................................................................... 6200/9561
2020-01-31T23:29:31.2348477Z .................................................................................................... 6300/9561
2020-01-31T23:29:31.2348477Z .................................................................................................... 6300/9561
2020-01-31T23:29:35.5478569Z ................................................................................i..ii............... 6400/9561
2020-01-31T23:30:01.2797658Z .................................................................................................... 6600/9561
2020-01-31T23:30:06.5733629Z ........................................................i........................................... 6700/9561
2020-01-31T23:30:08.6606003Z .................................................................................................... 6800/9561
2020-01-31T23:30:11.3588650Z ........................................................i........................................... 6900/9561
---
2020-01-31T23:31:48.5631891Z .................................................................................................... 7600/9561
2020-01-31T23:31:53.7164260Z .................................................................................................... 7700/9561
2020-01-31T23:32:00.2807303Z .................................................................................................... 7800/9561
2020-01-31T23:32:10.6292835Z .................................................................................................... 7900/9561
2020-01-31T23:32:16.5251879Z ............iiiiiii.i............................................................................... 8000/9561
2020-01-31T23:32:30.3543873Z .................................................................................................... 8200/9561
2020-01-31T23:32:40.5918073Z .....F.............................................................................................. 8300/9561
2020-01-31T23:32:53.5708934Z .................................................................................................... 8400/9561
2020-01-31T23:33:00.3595936Z .................................................................................................... 8500/9561
---
2020-01-31T23:34:52.3111209Z ---- [ui] ui/specialization/soundness/partial_eq_range_inclusive.rs stdout ----
2020-01-31T23:34:52.3111306Z 
2020-01-31T23:34:52.3111624Z error: test compilation failed although it shouldn't!
2020-01-31T23:34:52.3111974Z status: exit code: 1
2020-01-31T23:34:52.3152224Z command: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "/checkout/src/test/ui/specialization/soundness/partial_eq_range_inclusive.rs" "-Zthreads=1" "--target=x86_64-unknown-linux-gnu" "--error-format" "json" "-Zui-testing" "-Zdeduplicate-diagnostics=no" "-C" "prefer-dynamic" "-o" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/specialization/soundness/partial_eq_range_inclusive/a" "-Crpath" "-O" "-Cdebuginfo=0" "-Zunstable-options" "-Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "-L" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui/specialization/soundness/partial_eq_range_inclusive/auxiliary"
2020-01-31T23:34:52.3154544Z ------------------------------------------
2020-01-31T23:34:52.3154615Z 
2020-01-31T23:34:52.3155788Z ------------------------------------------
2020-01-31T23:34:52.3155872Z stderr:
2020-01-31T23:34:52.3155872Z stderr:
2020-01-31T23:34:52.3156117Z ------------------------------------------
2020-01-31T23:34:52.3156172Z error[E0282]: type annotations needed
2020-01-31T23:34:52.3156473Z   --> /checkout/src/test/ui/specialization/soundness/partial_eq_range_inclusive.rs:34:34
2020-01-31T23:34:52.3156530Z    |
2020-01-31T23:34:52.3156583Z LL |     assert_eq!(*values.borrow(), Vec::new());
2020-01-31T23:34:52.3156693Z 
2020-01-31T23:34:52.3156742Z error: aborting due to previous error
2020-01-31T23:34:52.3156775Z 
2020-01-31T23:34:52.3157057Z For more information about this error, try `rustc --explain E0282`.
---
2020-01-31T23:34:52.3158165Z thread 'main' panicked at 'Some tests failed', src/tools/compiletest/src/main.rs:348:22
2020-01-31T23:34:52.3158243Z note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
2020-01-31T23:34:52.3158279Z 
2020-01-31T23:34:52.3158307Z 
2020-01-31T23:34:52.3163621Z command did not execute successfully: "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage0-tools-bin/compiletest" "--compile-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib" "--run-lib-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/lib/rustlib/x86_64-unknown-linux-gnu/lib" "--rustc-path" "/checkout/obj/build/x86_64-unknown-linux-gnu/stage2/bin/rustc" "--src-base" "/checkout/src/test/ui" "--build-base" "/checkout/obj/build/x86_64-unknown-linux-gnu/test/ui" "--stage-id" "stage2-x86_64-unknown-linux-gnu" "--mode" "ui" "--target" "x86_64-unknown-linux-gnu" "--host" "x86_64-unknown-linux-gnu" "--llvm-filecheck" "/usr/lib/llvm-7/bin/FileCheck" "--host-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--target-rustcflags" "-Crpath -O -Cdebuginfo=0 -Zunstable-options  -Lnative=/checkout/obj/build/x86_64-unknown-linux-gnu/native/rust-test-helpers" "--docck-python" "/usr/bin/python2.7" "--lldb-python" "/usr/bin/python2.7" "--gdb" "/usr/bin/gdb" "--quiet" "--llvm-version" "7.0.0\n" "--system-llvm" "--cc" "" "--cxx" "" "--cflags" "" "--llvm-components" "" "--adb-path" "adb" "--adb-test-dir" "/data/tmp/work" "--android-cross-path" "" "--color" "always"
2020-01-31T23:34:52.3163982Z 
2020-01-31T23:34:52.3164015Z 
2020-01-31T23:34:52.3232324Z failed to run: /checkout/obj/build/bootstrap/debug/bootstrap test
2020-01-31T23:34:52.3233042Z Build completed unsuccessfully in 0:59:50
2020-01-31T23:34:52.3233042Z Build completed unsuccessfully in 0:59:50
2020-01-31T23:34:52.3238282Z == clock drift check ==
2020-01-31T23:34:52.3254700Z   local time: Fri Jan 31 23:34:52 UTC 2020
2020-01-31T23:34:52.6213387Z   network time: Fri, 31 Jan 2020 23:34:52 GMT
2020-01-31T23:34:52.6222571Z == end clock drift check ==
2020-01-31T23:34:53.1862875Z 
2020-01-31T23:34:53.1935649Z ##[error]Bash exited with code '1'.
2020-01-31T23:34:53.1949748Z ##[section]Finishing: Run build
2020-01-31T23:34:53.1971358Z ##[section]Starting: Checkout rust-lang/rust@refs/pull/68358/merge to s
2020-01-31T23:34:53.1973292Z Task         : Get sources
2020-01-31T23:34:53.1973344Z Description  : Get sources from a repository. Supports Git, TfsVC, and SVN repositories.
2020-01-31T23:34:53.1973396Z Version      : 1.0.0
2020-01-31T23:34:53.1973460Z Author       : Microsoft
2020-01-31T23:34:53.1973460Z Author       : Microsoft
2020-01-31T23:34:53.1973511Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkId=798199)
2020-01-31T23:34:53.1973568Z ==============================================================================
2020-01-31T23:34:53.6419109Z Cleaning any cached credential from repository: rust-lang/rust (GitHub)
2020-01-31T23:34:53.6457540Z ##[section]Finishing: Checkout rust-lang/rust@refs/pull/68358/merge to s
2020-01-31T23:34:53.6582130Z Cleaning up task key
2020-01-31T23:34:53.6582931Z Start cleaning up orphan processes.
2020-01-31T23:34:53.6713543Z Terminate orphan process: pid (3888) (python)
2020-01-31T23:34:53.6999625Z ##[section]Finishing: Finalize Job

I'm a bot! I can only do what humans tell me to, so if this was not helpful or you have suggestions for improvements, please ping or otherwise contact @TimNN. (Feature Requests)

@matthewjasper matthewjasper force-pushed the matthewjasper:spec-fix branch from 0998993 to a81c59f Feb 1, 2020
@Centril

This comment has been minimized.

Copy link
Member

Centril commented Feb 3, 2020

@nikomatsakis

This comment has been minimized.

Copy link
Contributor

nikomatsakis commented Feb 7, 2020

@bors r+

@bors

This comment has been minimized.

Copy link
Contributor

bors commented Feb 7, 2020

📌 Commit a81c59f has been approved by nikomatsakis

Dylan-DPC added a commit to Dylan-DPC/rust that referenced this pull request Feb 8, 2020
Remove some unsound specializations

This removes the unsound and exploitable specializations in the standard library

* The `PartialEq` and `Hash` implementations for  `RangeInclusive` are changed to avoid specialization.
* The `PartialOrd` specialization for slices now specializes on a limited set of concrete types.
* Added some tests for the soundness problems.
bors added a commit that referenced this pull request Feb 8, 2020
Rollup of 7 pull requests

Successful merges:

 - #68358 (Remove some unsound specializations)
 - #68802 (rustc_codegen_ssa: don't treat inlined variables as debuginfo arguments.)
 - #68834 (Fix and test implementation of BTreeMap's first/last_entry, pop_first/last)
 - #68881 (rustc_codegen_llvm: always set AlwaysPreserve on all debuginfo variables)
 - #68913 (Pretty-print generic params and where clauses on associated types)
 - #68918 (Don't use the word "unwrap" to describe "unwrap" methods)
 - #68929 (Make issue references consistent)

Failed merges:

r? @ghost
@bors

This comment has been minimized.

Copy link
Contributor

bors commented Feb 8, 2020

⌛️ Testing commit a81c59f with merge 6cad754...

bors added a commit that referenced this pull request Feb 8, 2020
Remove some unsound specializations

This removes the unsound and exploitable specializations in the standard library

* The `PartialEq` and `Hash` implementations for  `RangeInclusive` are changed to avoid specialization.
* The `PartialOrd` specialization for slices now specializes on a limited set of concrete types.
* Added some tests for the soundness problems.
@bors

This comment has been minimized.

Copy link
Contributor

bors commented Feb 8, 2020

☀️ Test successful - checks-azure
Approved by: nikomatsakis
Pushing 6cad754 to master...

@bors bors added the merged-by-bors label Feb 8, 2020
@bors bors merged commit a81c59f into rust-lang:master Feb 8, 2020
5 checks passed
5 checks passed
homu Test successful
Details
pr Build #20200201.6 succeeded
Details
pr (Linux mingw-check) Linux mingw-check succeeded
Details
pr (Linux x86_64-gnu-llvm-7) Linux x86_64-gnu-llvm-7 succeeded
Details
pr (Linux x86_64-gnu-tools) Linux x86_64-gnu-tools succeeded
Details
@matthewjasper matthewjasper deleted the matthewjasper:spec-fix branch Feb 8, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

9 participants
You can’t perform that action at this time.