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

[WIP] ARROW-15678: [C++][CI] a crossbow job with MinRelSize enabled #12422

Closed
wants to merge 14 commits into from

Conversation

jonkeane
Copy link
Member

Adds a crossbow build that builds libarrow with CMAKE_BUILT_TYPE=MinSizeRel and runs the R tests on that

@github-actions
Copy link

@github-actions
Copy link

⚠️ Ticket has not been started in JIRA, please click 'Start Progress'.

Comment on lines 23 to 27
arrow::arrow_info()

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This might be helpful in debugging. We can remove it before we merge this, though it should only impact our CI builds and maybe it's good/fine to keep it around?

@@ -1252,6 +1252,12 @@ tasks:
ci: github
template: r/github.linux.offline.build.yml

test-r-minsizerel:
ci: github
template: r/github.macos-linux.local.yml
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This builds on macos + linux, which isn't strictly necessary for triggering what we're trying to trigger, but might be worth checking both linux + macos anyway

@jonkeane
Copy link
Member Author

@github-actions crossbow submit test-r-minsizerel

@apache apache deleted a comment from github-actions bot Feb 14, 2022
@github-actions
Copy link

Revision: 1e0ecc4

Submitted crossbow builds: ursacomputing/crossbow @ actions-1631

Task Status
test-r-minsizerel Github Actions

@jonkeane
Copy link
Member Author

@github-actions crossbow submit test-r-minsizerel with ARROW_R_DEV globally so that it is set when the tests run

@github-actions
Copy link

Unable to match any tasks for `with`
The Archery job run can be found at: https://github.com/apache/arrow/actions/runs/1842912357```

@jonkeane
Copy link
Member Author

@github-actions crossbow submit test-r-minsizerel

with ARROW_R_DEV globally so that it is set when the tests run

@github-actions
Copy link

Revision: 3d90069

Submitted crossbow builds: ursacomputing/crossbow @ actions-1632

Task Status
test-r-minsizerel Github Actions

@jonkeane
Copy link
Member Author

@github-actions crossbow submit test-r-minsizerel

@github-actions
Copy link

Revision: 2391edf

Submitted crossbow builds: ursacomputing/crossbow @ actions-1633

Task Status
test-r-minsizerel Github Actions

@pitrou
Copy link
Member

pitrou commented Feb 14, 2022

@jonkeane There is no traceback displayed anymore?

@jonkeane
Copy link
Member Author

jonkeane commented Feb 14, 2022

It's a bit hidden by the way the tests are run, but the Dump test logs still has: https://github.com/ursacomputing/crossbow/runs/5189845009?check_suite_focus=true#step:10:8126

Which also now includes arrow_info() too: https://github.com/ursacomputing/crossbow/runs/5189845009?check_suite_focus=true#step:10:98

@pitrou
Copy link
Member

pitrou commented Feb 14, 2022

Ok, I see. If this is the same crash as you got locally, then I'm inclined to think it's a compiler bug where clang emits a BMI2 instruction even though only -msse4.2 is given on the command line.

@jonkeane
Copy link
Member Author

Yup, that's the same place I saw locally.

If it helps, here's the stack trace + disassembly from when when I triggered it locally as well:

2491 Thread_829819
+ 2491 thread_start  (in libsystem_pthread.dylib) + 15  [0x7ff801c3e00f]
+   2491 _pthread_start  (in libsystem_pthread.dylib) + 125  [0x7ff801c424f4]
+     2491 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, arrow::internal::ThreadPool::LaunchWorkersUnlocked(int)::$_3> >(void*)  (in arrow.so) + 380  [0x109203749]
+       2491 arrow::internal::FnOnce<void ()>::operator()() &&  (in arrow.so) + 26  [0x109201f30]
+         2491 arrow::internal::FnOnce<void ()>::FnImpl<std::__1::__bind<arrow::detail::ContinueFuture, arrow::Future<std::__1::shared_ptr<arrow::ChunkedArray> >&, parquet::arrow::(anonymous namespace)::FileReaderImpl::DecodeRowGroups(std::__1::shared_ptr<parquet::arrow::(anonymous namespace)::FileReaderImpl>, std::__1::vector<int, std::__1::allocator<int> > const&, std::__1::vector<int, std::__1::allocator<int> > const&, arrow::internal::Executor*)::$_4&, unsigned long&, std::__1::shared_ptr<parquet::arrow::ColumnReaderImpl> > >::invoke()  (in arrow.so) + 98  [0x108f125c2]
+           2491 parquet::arrow::(anonymous namespace)::FileReaderImpl::DecodeRowGroups(std::__1::shared_ptr<parquet::arrow::(anonymous namespace)::FileReaderImpl>, std::__1::vector<int, std::__1::allocator<int> > const&, std::__1::vector<int, std::__1::allocator<int> > const&, arrow::internal::Executor*)::$_4::operator()(unsigned long, std::__1::shared_ptr<parquet::arrow::ColumnReaderImpl>) const  (in arrow.so) + 47  [0x108f11ed5]
+             2491 parquet::arrow::(anonymous namespace)::FileReaderImpl::ReadColumn(int, std::__1::vector<int, std::__1::allocator<int> > const&, parquet::arrow::ColumnReader*, std::__1::shared_ptr<arrow::ChunkedArray>*)  (in arrow.so) + 273  [0x108f0c037]
+               2491 parquet::arrow::ColumnReaderImpl::NextBatch(long long, std::__1::shared_ptr<arrow::ChunkedArray>*)  (in arrow.so) + 39  [0x108f0733b]
+                 2491 parquet::arrow::(anonymous namespace)::LeafReader::LoadBatch(long long)  (in arrow.so) + 137  [0x108f0794b]
+                   2491 parquet::internal::(anonymous namespace)::TypedRecordReader<parquet::PhysicalType<(parquet::Type::type)1> >::ReadRecords(long long)  (in arrow.so) + 442  [0x108f4f53e]
+                     2491 parquet::internal::(anonymous namespace)::TypedRecordReader<parquet::PhysicalType<(parquet::Type::type)1> >::ReadRecordData(long long)  (in arrow.so) + 471  [0x108f50503]
+                       2491 void parquet::internal::standard::DefLevelsToBitmapSimd<false>(short const*, long long, parquet::internal::LevelInfo, parquet::internal::ValidityBitmapInputOutput*)  (in arrow.so) + 250  [0x108fc2a5a]
+                         2491 long long parquet::internal::standard::DefLevelsBatchToBitmap<false>(short const*, long long, long long, parquet::internal::LevelInfo, arrow::internal::FirstTimeBitmapWriter*)  (in arrow.so) + 63  [0x108fc34da]
+                           2491 ???  (in <unknown binary>)  [0x600001354518]
+                             2491 _sigtramp  (in libsystem_platform.dylib) + 29  [0x7ff801c57e2d]
+                               2491 sigactionSegv  (in libR.dylib) + 649  [0x1042598c9]  main.c:625
+                                 2491 Rstd_ReadConsole  (in libR.dylib) + 2042  [0x10435160a]  sys-std.c:1044
+                                   2491 R_SelectEx  (in libR.dylib) + 308  [0x104350854]  sys-std.c:178
+                                     2491 __select  (in libsystem_kernel.dylib) + 10  [0x7ff801c0de4a]
Dump of assembler code from 0x13ac6db00 to 0x13ac6db99ff:
 ...
--Type <RET> for more, q to quit, c to continue without paging--
   0x000000013ac6db82:	mov    $0x8,%ecx
   0x000000013ac6db87:	sub    %rax,%rcx
   0x000000013ac6db8a:	lea    0xf1520b(%rip),%rdi        # 0x13bb82d9c
   0x000000013ac6db91:	movzbl (%rcx,%rdi,1),%edi
   0x000000013ac6db95:	mov    %esi,%ebx
   0x000000013ac6db97:	and    %edi,%ebx
=> 0x000000013ac6db99:	shlx   %rax,%rbx,%rax
   0x000000013ac6db9e:	or     0x18(%r15),%al
   0x000000013ac6dba2:	mov    %al,0x18(%r15)
   0x000000013ac6dba6:	cmp    %rdx,%rcx
   0x000000013ac6dba9:	jg     0x13ac6dbf5
   0x000000013ac6dbab:	mov    %al,(%r14)
   0x000000013ac6dbae:	inc    %r14
   0x000000013ac6dbb1:	shrx   %rcx,%rsi,%rax
   0x000000013ac6dbb6:	mov    %rax,-0x20(%rbp)
   0x000000013ac6dbba:	sub    %rcx,%rdx
   0x000000013ac6dbbd:	mov    %rdx,%rbx
   0x000000013ac6dbc0:	sar    $0x3,%rbx
   0x000000013ac6dbc4:	and    $0x7,%edx
   0x000000013ac6dbc7:	cmp    $0x1,%rdx
   0x000000013ac6dbcb:	sbb    $0xffffffffffffffff,%rbx
   0x000000013ac6dbcf:	lea    -0x20(%rbp),%rsi
   0x000000013ac6dbd3:	mov    %r14,%rdi
...

@pitrou
Copy link
Member

pitrou commented Feb 14, 2022

Yes, it's based on that info that I estimate that it's a compiler bug.

@pitrou
Copy link
Member

pitrou commented Feb 15, 2022

@github-actions crossbow submit test-r-minsizerel

@pitrou pitrou changed the title ARROW-15678: [C++][CI] a crossbow job with MinRelSize enabled [WIP] ARROW-15678: [C++][CI] a crossbow job with MinRelSize enabled Feb 15, 2022
@github-actions
Copy link

Revision: 1969bc7

Submitted crossbow builds: ursacomputing/crossbow @ actions-1634

Task Status
test-r-minsizerel Github Actions

@pitrou
Copy link
Member

pitrou commented Feb 15, 2022

@github-actions crossbow submit test-r-minsizerel

@github-actions
Copy link

Revision: 7b90730

Submitted crossbow builds: ursacomputing/crossbow @ actions-1635

Task Status
test-r-minsizerel Github Actions

@jonkeane
Copy link
Member Author

@github-actions crossbow submit test-r-minsizerel

@github-actions
Copy link

Revision: d1c6351

Submitted crossbow builds: ursacomputing/crossbow @ actions-1636

Task Status
test-r-minsizerel Github Actions

@jonkeane
Copy link
Member Author

@github-actions crossbow submit test-r-minsizerel

@github-actions
Copy link

Revision: 5e81c08

Submitted crossbow builds: ursacomputing/crossbow @ actions-1637

Task Status
test-r-minsizerel Github Actions

@jonkeane
Copy link
Member Author

@github-actions crossbow submit test-r-minsizerel

@github-actions
Copy link

Revision: 20ca138

Submitted crossbow builds: ursacomputing/crossbow @ actions-1679

Task Status
test-r-minsizerel Github Actions

@jonkeane
Copy link
Member Author

@github-actions crossbow submit test-r-minsizerel

@github-actions
Copy link

Revision: ffe6725

Submitted crossbow builds: ursacomputing/crossbow @ actions-1681

Task Status
test-r-minsizerel Github Actions

@jonkeane
Copy link
Member Author

@github-actions crossbow submit test-r-minsizerel

@github-actions
Copy link

Revision: 5d0f404

Submitted crossbow builds: ursacomputing/crossbow @ actions-1684

Task Status
test-r-minsizerel Github Actions

@jonkeane
Copy link
Member Author

@github-actions crossbow submit test-r-minsizerel

@github-actions
Copy link

Revision: bfb7b85

Submitted crossbow builds: ursacomputing/crossbow @ actions-1685

Task Status
test-r-minsizerel Github Actions

@jonkeane
Copy link
Member Author

@github-actions crossbow submit test-r-minsizerel

@github-actions
Copy link

Revision: 7900fa7

Submitted crossbow builds: ursacomputing/crossbow @ actions-1686

Task Status
test-r-minsizerel Github Actions

@jonkeane
Copy link
Member Author

jonkeane commented Mar 2, 2022

I tried also running GCC, it seems to run the test just fine but I'm still getting segfaults when the tests finish(?) I also tried isolating the tests to just the one file that has the test that segfaults with clang and that has been freezing + timing out.

I'm going to close this and move on to other tasks — if anyone wants to take it up, feel free.

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

Successfully merging this pull request may close these issues.

None yet

2 participants