I meant the string pointed by this voidAV1((x) string in J literal arrays are not null-terminated.
On Wed, Feb 1, 2023 at 12:54 AM Raul Miller <[email protected]> wrote: > mpz_get_str in this context returns a null terminated string: > https://gmplib.org/manual/Converting-Integers. And I'm passing in a > null value for its first argument, so libgmp is figuring out how much > memory we need to allocate. > > Anyways, s would always be null terminated. > > But the crash is happening inside of mpz_get_str, so that result can't > be the problem -- we haven't gotten that far, yet. > > One thing I'm wondering, from the description, is if libgmp was > compiled with avx support only or avx2 support, and whether that > introduces any issues (such as the state of machine flags) in the > handling of calling conventions. But I haven't figured out how to > research this issue, yet. > > Thanks, > > -- > Raul > > On Tue, Jan 31, 2023 at 11:13 AM bill lam <[email protected]> wrote: > > > > Raul, > > > > From the backtrace below, I suspect something wrong in the parameter of > > calling __gmpz_get_str(..) > > Have you checked voidAV1((x) is properly null terminated ? > > > > #define SgetX(Xy) ({\ > > X Sy=Xy; mpX(Sy); C*s= jmpz_get_str(0,10,mpSy); \ > > X tempx= UNvoidAV1(s); mpX(tempx); X safex= jtXmpzcommon(jt, mptempx, > 0); \ > > CAV1(safex);}) // ": y > > > > #define mpzXnojt(MPZ,x) mpz_t MPZ= {XLIMBLEN(x), XSGN((x)), voidAV1((x))} > > > > > > > > x: 1000 > > JE has crashed, likely due to an internal bug. Please report the code > > which caused the crash, as well as the following printout, to the J > > programming forum. > > 00000000004030a2: ?:0: sigsegv > > 00007f84a7b2dd4f: ?:0: ? > > 00007f84a673ce2e: ?:0: __gmpz_get_str > > 00007f84a71b6c6a: ?:0: jtthxqe > > 00007f84a71b75be: ?:0: jtthorn1main > > 00007f84a71bb3bb: ?:0: jtjprx > > 00007f84a71bcf11: ?:0: jtjpr1 > > 00007f84a71bcd9b: ?:0: jtjpr > > 00007f84a71db0d9: ?:0: jtimmex > > 00007f84a71c7a61: ?:0: jdo > > 00007f84a71c7813: ?:0: JDo > > 0000000000402f9f: ?:0: main > > 00007f84a7b1829c: ?:0: __libc_start_main > > 00000000004024ed: ?:0: _start > > > > On Tue, Jan 31, 2023 at 10:30 PM Igor Zhuravlov <[email protected]> > wrote: > > > > > Bill, > > > > > > you were right. libgmp.so from my desktop PC which passes all 3 tests, > > > isn't stripped. Therefore, it cannot be from distro. May be, it's from > > > previous version of j904_linux64.tar.gz . It's meta-data: > > > - size: 614504 bytes > > > - timestamp: 2022-12-15 09:17:56 > > > - GMP version: 6.2.1 > > > > > > I've checked again all libgmp.so available on both PCs, and may > conclude: > > > 1) two libgmp 6.1.2 libs (from distro and built from gmplib.org > tarball) > > > pass (x: 1000) test but crash with (+/ .*) and (-/ .*) tests; > > > 2) two libgmp 6.2.1 libs bundled with J (from tarballs dated 2022-12-15 > > > and 2023-01-15) work fine with JE j904/j64avx2/linux and crash for > > > all 3 tests with JE j904/j64avx/linux; > > > 3) libgmp 6.2.1 built from gmplib.org tarball works fine with JE > > > j904/j64avx/linux (on the same PC where it was built). > > > > > > Crash case (JE: j904/j64avx/linux, libgmp 6.2.1 bundled with J, current > > > tarball version): > > > > > > user@notebook:~/j904/bin> LANG=C ./jconsole > > > JVERSION > > > Engine: j904/j64avx/linux > > > Beta-j: commercial/2023-01-07T02:27:29 > > > Library: 9.04.11 > > > Platform: Linux 64 > > > Installer: J904 install > > > InstallPath: /home/user/j904 > > > Contact: www.jsoftware.com > > > x: 1000 > > > JE has crashed, likely due to an internal bug. Please report the code > > > which caused the crash, as well as the following printout, to the J > > > programming forum. > > > 00000000004030a2: ?:0: sigsegv > > > 00007f84a7b2dd4f: ?:0: ? > > > 00007f84a673ce2e: ?:0: __gmpz_get_str > > > 00007f84a71b6c6a: ?:0: jtthxqe > > > 00007f84a71b75be: ?:0: jtthorn1main > > > 00007f84a71bb3bb: ?:0: jtjprx > > > 00007f84a71bcf11: ?:0: jtjpr1 > > > 00007f84a71bcd9b: ?:0: jtjpr > > > 00007f84a71db0d9: ?:0: jtimmex > > > 00007f84a71c7a61: ?:0: jdo > > > 00007f84a71c7813: ?:0: JDo > > > 0000000000402f9f: ?:0: main > > > 00007f84a7b1829c: ?:0: __libc_start_main > > > 00000000004024ed: ?:0: _start > > > ffffffffffffffff: ?:0: ? > > > > > > > ----------------------------------------------------------------------------- > > > Aborted (core dumped) > > > > > > user@notebook:~/j904/bin> LANG=C ./jconsole. > > > (+/ .*)x: 4 4$_ __ 0 0 1 1 0 0 0 0 1 0 0 0 0 1 > > > JE has crashed, likely due to an internal bug. Please report the code > > > which caused the crash, as well as the following printout, to the J > > > programming forum. > > > 00000000004030a2: ?:0: sigsegv > > > 00007fc29f286d4f: ?:0: ? > > > 00007fc29e11cc3a: ?:0: __gmpn_mul_1 > > > > > > > ----------------------------------------------------------------------------- > > > Aborted (core dumped) > > > > > > user@notebook:~/j904/bin> LANG=C ./jconsole. > > > (-/ .*)x: 4 4$_ __ 0 0 1 1 0 0 0 0 1 0 0 0 0 1 > > > JE has crashed, likely due to an internal bug. Please report the code > > > which caused the crash, as well as the following printout, to the J > > > programming forum. > > > 00000000004030a2: ?:0: sigsegv > > > 00007efd35339d4f: ?:0: ? > > > 00007efd341cfc3a: ?:0: __gmpn_mul_1 > > > > > > > ----------------------------------------------------------------------------- > > > Aborted (core dumped) > > > > > > user@notebook:~/j904/bin> LANG=C ./jconsole. > > > load '~user/temp/gmp_ver.ijs' > > > gmp_version '' > > > libgmp.so 569448 15-Jan-23 23:05:28 > > > 6.2.1 > > > exit '' > > > > > > user@notebook:~/j904/bin> ./jconsole > > > fread < '~user/temp/gmp_ver.ijs' > > > NB. nilad to get GMP version string > > > NB. ver=. gmp_version '' > > > gmp_version=: 3 : 0 > > > dl=. '/usr/lib64/libdl.so' > > > g=. (jpath '~bin') , '/libgmp.so' > > > echo dir g > > > h=. 0 {:: (dl , ' dlopen * *c i') cd g ; 1 NB. lazy binding > > > assert 0 ~: h > > > p=. 0 {:: (dl , ' dlsym x x *c') cd h ; '__gmp_version' > > > assert 0 ~: p > > > c=. memr p , 0 1 4 > > > assert 0 ~: c > > > ver=. memr c , 0 _1 > > > ) > > > > > > -- > > > Regards, > > > Igor > > > > > > > > > On Tue, Jan 31, 2023 at 01:24 AM bill lam <[email protected]> wrote: > > > > I found libgmp 6.1.2 crashed for those 2 lines, but libgmp 6.2.1 that > > > > bundled by J works fine. > > > > > > > > I think libgmp 6.1.2 is buggy but the bundled 6.2.1 can't be loaded > on > > > > your computers. > > > > > > > > If you linux distro can provide libgmp 6.2.1 ( or 6.2.0) you should > > > update > > > > to the newer version. > > > > > > > > Can you double check the version of libgmp after OS upgrade on your > > > desktop > > > > computer? > > > > > > > > > > > > ---------------------------------------------------------------------- > > > For information about J forums see http://www.jsoftware.com/forums.htm > > > > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
