-
Notifications
You must be signed in to change notification settings - Fork 3.4k
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
[C++] Crash at arrow::internal::CountSetBits #21840
Comments
Antoine Pitrou / @pitrou: |
Tham / @thamht4190:
No, it's not a virtual machine. I've got another machine which has the same crash: Operating System: Windows 10 Pro 64-bit (10.0, Build 10240) (10240.th1.170602-2340)
Language: English (Regional Setting: English)
System Manufacturer: HP
System Model: HP Laptop 14-bs0xx
BIOS: F.31
Processor: Intel(R) Celeron(R) CPU N3060 @ 1.60GHz (2 CPUs), ~1.6GHz
Memory: 4096MB RAM
Available OS Memory: 4002MB RAM
Page File: 2189MB used, 2516MB available
Windows Dir: C:\Windows
DirectX Version: 12
DX Setup Parameters: Not found
User DPI Setting: Using System DPI
System DPI Setting: 96 DPI (100 percent)
DWM DPI Scaling: Disabled
Miracast: Available, with HDCP
Microsoft Graphics Hybrid: Not Supported
DxDiag Version: 10.00.10240.16384 64bit Unicode Can you please take a look? |
Antoine Pitrou / @pitrou: Among its output will be a line saying "Supports POPCNT instruction". It will tell you whether the CPU supports the required instruction. |
Tham / @thamht4190: |
Antoine Pitrou / @pitrou: |
Tham / @thamht4190: |
Tham / @thamht4190: |
Antoine Pitrou / @pitrou: |
Tham / @thamht4190: |
Antoine Pitrou / @pitrou: |
Antoine Pitrou / @pitrou: |
Tham / @thamht4190:
|
Tham / @thamht4190: |
Tham / @thamht4190: $ sysctl -n machdep.cpu.features
FPU VME DE PSE TSC MSR PAE MCE CX8 APIC SEP MTRR PGE MCA CMOV PAT PSE36 CLFSH DS ACPI MMX FXSR SSE SSE2 SS HTT TM PBE SSE3 DTES64 MON DSCPL VMX EST TM2 SSSE3 CX16 TPR PDCM SSE4.1 XSAVE We don't see POPCNT, then it seems that this machine doesn't support POPCNT instruction :( Is there any way to avoid this situation? |
Tham / @thamht4190: |
Antoine Pitrou / @pitrou: It won't be easy to return an error (from which function exactly?), as Arrow is a library and not an application. Perhaps we can add some kind of |
Antoine Pitrou / @pitrou: https://gist.github.com/pitrou/a9803b98b651f766f45c5fd79c47cde1
|
Tham / @thamht4190:
Ok, let me contact our customer. This will take time again :( |
Tham / @thamht4190: |
Wes McKinney / @wesm: |
Tham / @thamht4190: I will check again to confirm if POPCNT is supported on the machine running Windows 7 that I received crash report.
In case we want to support, I'm not sure how to do it. Can you share any guide or suggestion? I'll try to implement. Update: I found this discussion http://www.cplusplus.com/forum/general/185927/. Using may be a candidate? |
Antoine Pitrou / @pitrou: (it's probably not difficult to find a good software implementation of popcount on the Internet, in any case) |
Wes McKinney / @wesm: |
Wes McKinney / @wesm: |
Wes McKinney / @wesm: We might add a software implementation of https://github.com/RoaringBitmap/CRoaring/blob/master/include/roaring/portability.h#L162 |
Antoine Pitrou / @pitrou: |
Tham / @thamht4190: (Sorry that I don't receive any notification about your comment, so I have to check it by opening this page directly and sometimes reply late). |
Antoine Pitrou / @pitrou: Did you encounter many such cases? |
Tham / @thamht4190:
@pitrou Yes, absolutely.
Like 12 machines until I fixed this issue using . |
Tham / @thamht4190: |
Antoine Pitrou / @pitrou: (this is git master, but you get the idea) |
Is this ever going to get fixed? This has been broken for at least 4 years now... |
The challenge here is generally supporting hardware without any kind of CI infrastructure. Perhaps we can run some very basic tests with qemu (it's too slow to run the full test suite) to get reasonable coverage. |
I'd like to mention that popcnt is a 15 year old instruction set this point. TBH I don't think it is worth the maintenance burden (+ CI issues) to add this with the use case for this only ever shrinking as time goes on but I will defer to @westonpace I am also closing this issue in favor of #23013 as it represents the actual fix vs. a long troubleshooting thread. |
I've got a lot of crash dump from a customer's windows machine. The stacktrace shows that it crashed at arrow::internal::CountSetBits.
Environment: Operating System: Windows 7 Professional 64-bit (6.1, Build 7601) Service Pack 1 (7601.win7sp1_ldr_escrow.181110-1429)
Language: English (Regional Setting: English)
System Manufacturer: SAMSUNG ELECTRONICS CO., LTD.
System Model: RV420/RV520/RV720/E3530/S3530/E3420/E3520
BIOS: Phoenix SecureCore-Tiano(tm) NB Version 2.1 05PQ
Processor: Intel(R) Pentium(R) CPU B950 @ 2.10GHz (2 CPUs), ~2.1GHz
Memory: 2048MB RAM
Available OS Memory: 1962MB RAM
Page File: 1517MB used, 2405MB available
Windows Dir: C:\Windows
DirectX Version: DirectX 11
Reporter: Tham / @thamht4190
Related issues:
Original Issue Attachments:
PRs and other links:
Note: This issue was originally created as ARROW-5381. Please see the migration documentation for further details.
The text was updated successfully, but these errors were encountered: