Closed nuxwin closed 5 years ago
Same here, restarting IDEA didn't help. Which process should we see in the ps output?
Deparsing being done using perl script: https://github.com/Camelcade/Perl5-IDEA/blob/master/perl-utils/xs_parser_simple.pl
You may take this one, or from your installation. Please, try to run it and see what happens. You may also uncomment/add some debugging info, like which module is currently loaded at line 16.
I suppose that some of your XS module prompts something.
This script runs and completes on my machine. It issues 13 non-descript warnings: unexpected OP_CUSTOM (is_plain_hashref) at /usr/local/lib/perl5/5.26.1/B/Deparse.pm line 1667. unexpected OP_CUSTOM (is_plain_hashref) at /usr/local/lib/perl5/5.26.1/B/Deparse.pm line 1667. unexpected OP_CUSTOM (is_plain_hashref) at /usr/local/lib/perl5/5.26.1/B/Deparse.pm line 1667. unexpected OP_CUSTOM (is_plain_hashref) at /usr/local/lib/perl5/5.26.1/B/Deparse.pm line 1667. unexpected OP_CUSTOM (is_plain_hashref) at /usr/local/lib/perl5/5.26.1/B/Deparse.pm line 1667. unexpected OP_CUSTOM (is_plain_arrayref) at /usr/local/lib/perl5/5.26.1/B/Deparse.pm line 1667. unexpected OP_CUSTOM (is_plain_hashref) at /usr/local/lib/perl5/5.26.1/B/Deparse.pm line 1667. unexpected OP_CUSTOM (is_plain_arrayref) at /usr/local/lib/perl5/5.26.1/B/Deparse.pm line 1667. unexpected OP_CUSTOM (is_plain_arrayref) at /usr/local/lib/perl5/5.26.1/B/Deparse.pm line 1667. unexpected OP_CUSTOM (is_plain_hashref) at /usr/local/lib/perl5/5.26.1/B/Deparse.pm line 1667. unexpected OP_CUSTOM (is_plain_arrayref) at /usr/local/lib/perl5/5.26.1/B/Deparse.pm line 1667. unexpected OP_CUSTOM (is_plain_hashref) at /usr/local/lib/perl5/5.26.1/B/Deparse.pm line 1667. unexpected OP_CUSTOM (is_plain_arrayref) at /usr/local/lib/perl5/5.26.1/B/Deparse.pm line 1667.
However, I found that the wrong highlighting of Test::More functions is of a different matter, not because of it is not deparsed (it's a PP module), but because my usage of test more was like:
use Test::More tests => 20
;
If I remove tests => 20 the wrong highlighting disappears.
The wrong highlighting of MongoDB methods, though, has something to do with deparsing. The method get_collection() is defined in MongoDB::Database, but the deparsed entry for that module does not list this method.
The 'List::MoreUtils' miss of 'part' is due to 'List::MoreUtils::XS' is implicitly used through List::MoreUtils, and the function is defined in the ::XS module.
Seems I've got the root of Test::More
problem. Default exporter behavior suggests that if any params passed to use
, only explicitly specified subs being imported, tests
and 1
in this case. But seems Test::More
works smarter.
About deparsing. It's important to understand, that deparsing makes effect only for subs defined using XS and not defined in any way in pure perl. If sub is defined in perl, problem is not about deparsing.
Could you please provide minimalistic code examples for Mongo
and ListMore
?
Here are the screenshots Mongo
List::MoreUtils
@cjelli about mongo: plugin can ifer types to scalar only for now. No hash elements. will check with list::more
For exporter issues created #1657 && #1658 For hanging deparsing - still waiting reproduction.
@hurricup
For hanging deparsing - still waiting reproduction.
What do you mean exactly? I given the exact steps to follow to reproduce the bug. Note that I'm under Debian Jessie.
@nuxwin have you tried to deparse with script from console as I've described above? The problem is in some of your XS modules, not deparsing script/IDE.
@hurricup
The problem is in some of your XS modules, not deparsing script/IDE.
Nops.. But this worked prior update... I'll run the script manually and provide you the result.
@nuxwin I've found that with some circumstances I may reproduce such 'hanging'. Will fix, but please, check on your side anyway.
@hurricup
Result
nuxwin@dev:/github/i-MSCP/imscp$ perl deparse.pl
Bizarre copy of ARRAY in scalar assignment at /usr/share/perl/5.20/File/Find.pm line 525.
Environment
nuxwin@dev:/github/i-MSCP/imscp$ perl -V
Summary of my perl5 (revision 5 version 20 subversion 2) configuration:
Platform:
osname=linux, osvers=4.9.0-3-amd64, archname=x86_64-linux-gnu-thread-multi
uname='linux binet 4.9.0-3-amd64 #1 smp debian 4.9.30-2+deb9u3 (2017-08-06) x86_64 gnulinux '
config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Dldflags= -Wl,-z,relro -Dlddlflags=-shared -Wl,-z,relro -Dcccdlflags=-fPIC -Darchname=x86_64-linux-gnu -Dprefix=/usr -Dprivlib=/usr/share/perl/5.20 -Darchlib=/usr/lib/x86_64-linux-gnu/perl/5.20 -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/x86_64-linux-gnu/perl5/5.20 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.20.2 -Dsitearch=/usr/local/lib/x86_64-linux-gnu/perl/5.20.2 -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3 -Dusesitecustomize -Duse64bitint -Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Ud_ualarm -Uusesfio -Uusenm -Ui_libutil -Uversiononly -DDEBUGGING=-g -Doptimize=-O2 -Duseshrplib -Dlibperl=libperl.so.5.20.2 -des'
hint=recommended, useposix=true, d_sigaction=define
useithreads=define, usemultiplicity=define
use64bitint=define, use64bitall=define, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O2 -g',
cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include'
ccversion='', gccversion='4.9.2', gccosandvers=''
intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='cc', ldflags =' -fstack-protector -L/usr/local/lib'
libpth=/usr/local/lib /usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed /usr/include/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu /lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib
libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt
perllibs=-ldl -lm -lpthread -lc -lcrypt
libc=libc-2.19.so, so=so, useshrplib=true, libperl=libperl.so.5.20
gnulibc_version='2.19'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib -fstack-protector'
Characteristics of this binary (from libperl):
Compile-time options: HAS_TIMES MULTIPLICITY PERLIO_LAYERS
PERL_DONT_CREATE_GVSV
PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP
PERL_NEW_COPY_ON_WRITE PERL_PRESERVE_IVUV
USE_64_BIT_ALL USE_64_BIT_INT USE_ITHREADS
USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE
USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_PERLIO
USE_PERL_ATOF USE_REENTRANT_API USE_SITECUSTOMIZE
Locally applied patches:
DEBPKG:debian/cpan_definstalldirs - Provide a sensible INSTALLDIRS default for modules installed from CPAN.
DEBPKG:debian/db_file_ver - http://bugs.debian.org/340047 Remove overly restrictive DB_File version check.
DEBPKG:debian/doc_info - Replace generic man(1) instructions with Debian-specific information.
DEBPKG:debian/enc2xs_inc - http://bugs.debian.org/290336 Tweak enc2xs to follow symlinks and ignore missing @INC directories.
DEBPKG:debian/errno_ver - http://bugs.debian.org/343351 Remove Errno version check due to upgrade problems with long-running processes.
DEBPKG:debian/libperl_embed_doc - http://bugs.debian.org/186778 Note that libperl-dev package is required for embedded linking
DEBPKG:fixes/respect_umask - Respect umask during installation
DEBPKG:debian/writable_site_dirs - Set umask approproately for site install directories
DEBPKG:debian/extutils_set_libperl_path - EU:MM: set location of libperl.a under /usr/lib
DEBPKG:debian/no_packlist_perllocal - Don't install .packlist or perllocal.pod for perl or vendor
DEBPKG:debian/prefix_changes - Fiddle with *PREFIX and variables written to the makefile
DEBPKG:debian/fakeroot - Postpone LD_LIBRARY_PATH evaluation to the binary targets.
DEBPKG:debian/instmodsh_doc - Debian policy doesn't install .packlist files for core or vendor.
DEBPKG:debian/ld_run_path - Remove standard libs from LD_RUN_PATH as per Debian policy.
DEBPKG:debian/libnet_config_path - Set location of libnet.cfg to /etc/perl/Net as /usr may not be writable.
DEBPKG:debian/mod_paths - Tweak @INC ordering for Debian
DEBPKG:debian/module_build_man_extensions - http://bugs.debian.org/479460 Adjust Module::Build manual page extensions for the Debian Perl policy
DEBPKG:debian/prune_libs - http://bugs.debian.org/128355 Prune the list of libraries wanted to what we actually need.
DEBPKG:fixes/net_smtp_docs - [rt.cpan.org #36038] http://bugs.debian.org/100195 Document the Net::SMTP 'Port' option
DEBPKG:debian/perlivp - http://bugs.debian.org/510895 Make perlivp skip include directories in /usr/local
DEBPKG:debian/deprecate-with-apt - http://bugs.debian.org/747628 Point users to Debian packages of deprecated core modules
DEBPKG:debian/squelch-locale-warnings - http://bugs.debian.org/508764 Squelch locale warnings in Debian package maintainer scripts
DEBPKG:debian/skip-upstream-git-tests - Skip tests specific to the upstream Git repository
DEBPKG:debian/patchlevel - http://bugs.debian.org/567489 List packaged patches for 5.20.2-3+deb8u9 in patchlevel.h
DEBPKG:debian/skip-kfreebsd-crash - http://bugs.debian.org/628493 [perl #96272] Skip a crashing test case in t/op/threads.t on GNU/kFreeBSD
DEBPKG:fixes/document_makemaker_ccflags - http://bugs.debian.org/628522 [rt.cpan.org #68613] Document that CCFLAGS should include $Config{ccflags}
DEBPKG:debian/find_html2text - http://bugs.debian.org/640479 Configure CPAN::Distribution with correct name of html2text
DEBPKG:debian/perl5db-x-terminal-emulator.patch - http://bugs.debian.org/668490 Invoke x-terminal-emulator rather than xterm in perl5db.pl
DEBPKG:debian/cpan-missing-site-dirs - http://bugs.debian.org/688842 Fix CPAN::FirstTime defaults with nonexisting site dirs if a parent is writable
DEBPKG:fixes/memoize_storable_nstore - [rt.cpan.org #77790] http://bugs.debian.org/587650 Memoize::Storable: respect 'nstore' option not respected
DEBPKG:debian/regen-skip - Skip a regeneration check in unrelated git repositories
DEBPKG:fixes/regcomp-mips-optim - [perl #122817] http://bugs.debian.org/754054 Downgrade the optimization of regcomp.c on mips and mipsel due to a gcc-4.9 bug
DEBPKG:debian/makemaker-pasthru - http://bugs.debian.org/758471 Pass LD settings through to subdirectories
DEBPKG:fixes/perldoc-less-R - [rt.cpan.org #98636] http://bugs.debian.org/758689 Tell the 'less' pager to allow terminal escape sequences
DEBPKG:fixes/pod_man_reproducible_date - http://bugs.debian.org/759405 Support POD_MAN_DATE in Pod::Man for the left-hand footer
DEBPKG:fixes/io_uncompress_gunzip_inmemory - http://bugs.debian.org/747363 [rt.cpan.org #95494] Fix gunzip to in-memory file handle
DEBPKG:fixes/socket_test_recv_fix - http://bugs.debian.org/758718 [perl #122657] Compare recv return value to peername in socket test
DEBPKG:fixes/hurd_socket_recv_todo - http://bugs.debian.org/758718 [perl #122657] TODO checking the result of recv() on hurd
DEBPKG:fixes/regexp-performance - [0fa70a0] http://bugs.debian.org/777556 [perl #123743] simpify and speed up /.*.../ handling
DEBPKG:fixes/failed_require_diagnostics - http://bugs.debian.org/781120 [perl #123270] Report inaccesible file on failed require
DEBPKG:fixes/array-cloning - http://bugs.debian.org/779357 [perl #124127] [902d169] fix cloning arrays with unused elements
DEBPKG:fixes/perldb-threads - http://bugs.debian.org/779357 [perl #124127] [41ef2c6] lib/perl5db.pl: Restore noop lock prototype
DEBPKG:fixes/CVE-2015-8607_file_spec_taint_fix - ensure File::Spec::canonpath() preserves taint
DEBPKG:fixes/encode-unicode-bom - http://bugs.debian.org/798727 [rt.cpan.org #107043] Address https://rt.cpan.org/Public/Bug/Display.html?id=107043
DEBPKG:debian/encode-unicode-bom-doc - http://bugs.debian.org/798727 Document Debian backport of Encode::Unicode fix
DEBPKG:debian/kfreebsd-softupdates - http://bugs.debian.org/796798 Work around Debian Bug#796798
DEBPKG:fixes/CVE-2016-2381_duplicate_env - remove duplicate environment variables from environ
DEBPKG:debian/debugperl-compat-fix - [perl #127212] http://bugs.debian.org/810326 Disable PERL_TRACK_MEMPOOL for debugging builds
DEBPKG:fixes/CVE-2015-8853_regexp_hang - http://bugs.debian.org/821848 [perl #123562] PATCH [perl #123562] Regexp-matching "hangs"
DEBPKG:fixes/utf8_regexp_crash - http://bugs.debian.org/820328 [perl #124109] save_re_context(): do "local $n" with no PL_curpm
DEBPKG:fixes/regcomp_whitespace_fix - http://bugs.debian.org/820328 [perl #124109] Perl_save_re_context(): re-indent after last commit
DEBPKG:fixes/5.20.3/eval_label_crash - http://bugs.debian.org/822336 [perl #123652] eval {label:} crash
DEBPKG:fixes/5.20.3/preserve_record_separator - http://bugs.debian.org/822336 [perl #123218] "preserve" $/ if set to a bad value
DEBPKG:fixes/5.20.3/test_count_base_rs - http://bugs.debian.org/822336 Fix test count in t/base/rs.t
DEBPKG:fixes/5.20.3/remove_get_magic - http://bugs.debian.org/822336 [perl #123739] Remove get-magic from $/
DEBPKG:fixes/5.20.3/speed_up_scalar_g - http://bugs.debian.org/822336 [perl #123202] speed up scalar //g against tainted strings
DEBPKG:fixes/5.20.3/accidental_all_features - http://bugs.debian.org/822336 Stop $^H |= 0x1c020000 from enabling all features
DEBPKG:fixes/5.20.3/multidimensional_arrays_utf8 - http://bugs.debian.org/822336 [perl #124113] Make check for multi-dimensional arrays be UTF8-aware
DEBPKG:fixes/5.20.3/unquoted_utf8_heredoc_terminators - http://bugs.debian.org/822336 Allow unquoted UTF-8 HERE-document terminators
DEBPKG:fixes/5.20.3/parentheses_ambiguous_warning_utf8_functions - http://bugs.debian.org/822336 Fix "...without parentheses is ambuguous" warning for UTF-8 function names
DEBPKG:fixes/5.20.3/leak_namepv_copy - http://bugs.debian.org/822336 [perl #123786] don't leak the temp utf8 copy of namepv
DEBPKG:fixes/5.20.3/h2ph_hex_constants - http://bugs.debian.org/822336 h2ph: correct handling of hex constants for the preamble
DEBPKG:fixes/5.20.3/leftbracket_XTERMORDORDOR - http://bugs.debian.org/822336 [perl #123711] Fix crash with 0-5x-l{0}
DEBPKG:fixes/5.20.3/fatalize_warnings_unwinding - http://bugs.debian.org/822336 [perl #123398] don't fatalize warnings during unwinding (#123398)
DEBPKG:fixes/5.20.3/setpgrp - http://bugs.debian.org/822336 =?UTF-8?q?Don=E2=80=99t=20treat=20setpgrp($nonzero)=20as=20setpgr?= =?UTF-8?q?p(1)?=
DEBPKG:fixes/5.20.3/death_unwinding_crash - http://bugs.debian.org/822336 [perl #124156] RT #124156: death during unwinding causes crash
DEBPKG:fixes/5.20.3/stashpvn_crash - http://bugs.debian.org/822336 [perl #125541] Fix crash with %::=(); J->${\"::"}
DEBPKG:fixes/5.20.3/possessive_quantifier - http://bugs.debian.org/822336 [perl #125825] PATCH: [perl 125825] {n}+ possessive quantifier broken
DEBPKG:fixes/5.20.3/quoted_code_crash - http://bugs.debian.org/822336 [perl #123712] Fix /$a[/ parsing
DEBPKG:fixes/5.20.3/checking_sub_inwhat - http://bugs.debian.org/822336 [perl #123712] Don't check sub_inwhat
DEBPKG:fixes/5.20.3/yylex_loop - http://bugs.debian.org/822336 Fix hang with "@{"
DEBPKG:fixes/5.20.3/docs/op - http://bugs.debian.org/822336 Fix apidocs for OP_TYPE_IS(_OR_WAS) - arguments separated by |, not ,.
DEBPKG:fixes/5.20.3/docs/encoding - http://bugs.debian.org/822336 perlpodspec: Corrections/adds to detecting =encoding
DEBPKG:fixes/5.20.3/docs/SvPV_set - http://bugs.debian.org/822336 improve SvPV_set's docs, it really shouldn't be public API
DEBPKG:fixes/5.20.3/docs/autodie - http://bugs.debian.org/822336 Fix warning message regarding "use autodie" and "use open".
DEBPKG:fixes/5.20.3/docs/autodie_2_26 - http://bugs.debian.org/822336 perlunicook: Note that autodie >= 2.26 should be okay with "use open".
DEBPKG:fixes/5.20.3/docs/setenv - http://bugs.debian.org/822336 Fix setenv() replacement documentation in perlclib
DEBPKG:fixes/5.20.3/docs/clib_caution - http://bugs.debian.org/822336 perlhacktips: Add caution about clib ptr returns to static memory
DEBPKG:fixes/5.20.3/docs/perlunicook_typos - http://bugs.debian.org/822336 Fix minor code typos in perlunicook
DEBPKG:fixes/5.20.3/docs/ook_example - http://bugs.debian.org/822336 [perl #122322] Update OOK example in perlguts
DEBPKG:fixes/5.20.3/docs/study_noop - http://bugs.debian.org/822336 perlfunc: mention that study() is currently a noop
DEBPKG:fixes/CVE-2016-1238/remove-dot-when-loading - [perl #127834] (perl #127834) remove . from the end of @INC if complex modules are loaded
DEBPKG:fixes/CVE-2016-1238/remove-dot-in-padwalker - [perl #127834] perl5db.pl: ensure PadWalker is loaded from standard paths
DEBPKG:fixes/CVE-2016-1238/remove-dot-in-dist - [perl #127834] dist/: remove . from @INC when loading optional modules
DEBPKG:fixes/CVE-2016-1238/remove-dot-in-cpan - [perl #127834] cpan/: remove . from @INC when loading optional modules
DEBPKG:fixes/CVE-2016-1238/customized-encode - Update customized.dat for cpan/Encode/Encode.pm
DEBPKG:debian/CVE-2016-1238/test-suite-without-dot - [perl #127810] Patch unit tests to explicitly insert "." into @INC when needed.
DEBPKG:debian/CVE-2016-1238/eumm-without-dot - [perl #127810] Add PERL_USE_UNSAFE_INC support to EU::MM for fortify_inc support.
DEBPKG:debian/CVE-2016-1238/cpan-without-dot - [perl #127810] Set PERL_USE_UNSAFE_INC for cpan usage
DEBPKG:debian/CVE-2016-1238/mb-without-dot - Make Module::Build set PERL_USE_UNSAFE_INC
DEBPKG:debian/CVE-2016-1238/sitecustomize-in-etc - Look for sitecustomize.pl in /etc/perl rather than sitelib on Debian systems
DEBPKG:fixes/xsloader-eval - [rt.cpan.org #115808] http://bugs.debian.org/829578 =?UTF-8?q?Don=E2=80=99t=20let=20XSLoader=20load=20relative=20path?= =?UTF-8?q?s?=
DEBPKG:fixes/file_path_chmod_race - http://bugs.debian.org/863870 [rt.cpan.org #121951] Prevent directory chmod race attack.
DEBPKG:fixes/extutils_file_path_compat - [PATCH] Correct the order of tests of chmod(). (#294)
DEBPKG:debian/customized_file_path - Update customized.dat for File-Path changes
DEBPKG:debian/CVE-2016-1238/base-pm-amends-pt1 - Revert base.pm no-dot-in-inc fixes to make way for a better version
DEBPKG:debian/CVE-2016-1238/base-pm-amends-pt2 - [1afa289] Limit dotless-INC effect on base.pm with guard:
DEBPKG:fixes/CVE-2017-12837 - http://bugs.debian.org/875596 [perl #131582] regcomp [perl #131582]
DEBPKG:fixes/CVE-2017-12883 - http://bugs.debian.org/875597 [perl #131598] PATCH: [perl #131598]
DEBPKG:fixes/CVE-2017-12883-5.20 - http://bugs.debian.org/875597 [perl #131598] regcomp: Fix out of bound reads
Built under linux
Compiled at Sep 18 2017 18:16:33
@INC:
/etc/perl
/usr/local/lib/x86_64-linux-gnu/perl/5.20.2
/usr/local/share/perl/5.20.2
/usr/lib/x86_64-linux-gnu/perl5/5.20
/usr/share/perl5
/usr/lib/x86_64-linux-gnu/perl/5.20
/usr/share/perl/5.20
/usr/local/lib/site_perl
.
nuxwin@dev:/github/i-MSCP/imscp$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 8.9 (jessie)
Release: 8.9
Codename: jessie
@nuxwin ye, seems like problem on perl side :)
Try to add Carp::Always
to deparsing script, may be you'll find something.
Anyway, this is something set up sepcific. This will take time, have no Debian as far as i remember.
@hurricup
Try to add Carp::Always to deparsing script, may be you'll find something.
Result with use Carp::Always;
added to the script:
nuxwin@dev:/github/i-MSCP/imscp$ perl deparse.pl
Bizarre copy of ARRAY in list assignment at /usr/share/perl/5.20/Carp.pm line 228.
@hurricup
More info
nuxwin@dev:/github/i-MSCP/imscp$ perl deparse.pl
Processing DBD::SQLite
Processing Proc::ProcessTable
Processing Image::Magick
Processing Image::Magick::Q16
Processing List::MoreUtils
Processing DateTime
Processing URI::Escape::XS
Processing Package::Stash::XS
Processing UUID
Processing FCGI
Processing Net::DBus
Processing Net::SSLeay
Processing Net::LibIDN
Processing Net::DNS
Processing Lchown
Processing OSSP::uuid
Processing File::FcntlLock
Processing AptPkg
Processing Text::CharWidth
Processing Text::Soundex
Processing Text::Iconv
Processing Pango
Processing Gtk2
Processing Glib
Processing DBI
Processing Locale::gettext
Processing Crypt::SSLeay
Processing Crypt::Rijndael
Processing Sub::Name
Processing Sub::Identify
Processing Socket6
Processing XML::LibXML
Processing XML::Parser::Expat
Processing Class::C3::XS
Processing Cairo
Processing Params::Classify
Processing Params::Util
Processing Params::Validate::XS
Processing IO::Tty
Processing Variable::Magic
Processing HTML::Parser
Processing PerlIO::gzip
Processing Clone
Processing JSON::XS
Processing Algorithm::Diff::XS
Bizarre copy of ARRAY in list assignment at /usr/share/perl/5.20/Carp.pm line 228.
So the seem to be Algorithm::Diff::XS
@nuxwin There is a return for Type::Tiny::XS
, add another one for this one and try.
@hurricup
There is a return for Type::Tiny::XS, add another one for this one and try.
Exactly what I'm doing now.
@hurricup
And now, I get the same thing for the JSON::XS. It seem that there is something weird with processing of XS modules.
...
my @packages = ();
sub file_processor
{
if ($File::Find::name =~ m{auto/(.+?)/([^/]+)(dll|so)$})
{
my $name = $1;
$name =~ s{/+}{::}g;
return if $name =~ /\QType::Tiny::XS\E/; # see https://github.com/tobyink/p5-type-tiny-xs/issues/4
return if $name =~ /\QAlgorithm::Diff::XS\E/;
print "Processing $name\n";
eval "require $name;";
if (my $e = $@)
{
print STDERR "Error loading $name:\n$e\n";
}
}
}
...
nuxwin@dev:/github/i-MSCP/imscp$ perl deparse.pl
Processing DBD::SQLite
Processing Proc::ProcessTable
Processing Image::Magick
Processing Image::Magick::Q16
Processing List::MoreUtils
Processing DateTime
Processing URI::Escape::XS
Processing Package::Stash::XS
Processing UUID
Processing FCGI
Processing Net::DBus
Processing Net::SSLeay
Processing Net::LibIDN
Processing Net::DNS
Processing Lchown
Processing OSSP::uuid
Processing File::FcntlLock
Processing AptPkg
Processing Text::CharWidth
Processing Text::Soundex
Processing Text::Iconv
Processing Pango
Processing Gtk2
Processing Glib
Processing DBI
Processing Locale::gettext
Processing Crypt::SSLeay
Processing Crypt::Rijndael
Processing Sub::Name
Processing Sub::Identify
Processing Socket6
Processing XML::LibXML
Processing XML::Parser::Expat
Processing Class::C3::XS
Processing Cairo
Processing Params::Classify
Processing Params::Util
Processing Params::Validate::XS
Processing IO::Tty
Processing Variable::Magic
Processing HTML::Parser
Processing PerlIO::gzip
Processing Clone
Processing JSON::XS
Bizarre copy of ARRAY in list assignment at /usr/share/perl/5.20/Carp.pm line 228.
Ye, something bad happens on the way. Need to think what to do here.
@hurricup
I'll run the same script on Debian stretch (Perl version is more recent).
Okay, IDE should now report errors properly and should not act like process hangs.
@hurricup
Under Debian Stretch, the problem doesn't appear.
root@stretch:~# perl -v
This is perl 5, version 24, subversion 1 (v5.24.1) built for x86_64-linux-gnu-thread-multi
(with 75 registered patches, see perl -V for more detail)
Copyright 1987-2017, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
root@stretch:~# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 9.2 (stretch)
Release: 9.2
Codename: stretch
root@stretch:~#
Would be nice if you could update plugin from github and confirm that with your old version of perl plugin now more helpful than before.
@hurricup
Would be nice if you could update plugin from github and confirm that with your old version of perl plugin now more helpful than before.
I'll provide you with the result soon.
@hurricup
First, for the build: BUILD SUCCESSFUL
Now for the issue we are interested in, I now get the following error in Event log window:
05/12/17
21:03 XSubs Change Detected
XSubs declarations file is absent or outdated.
Regenerate
21:03 Deparser Execution Error
Bizarre copy of ARRAY in scalar assignment at /usr/share/perl/5.20/File/Find.pm line 525.
So yes, the process doesn't longer hang. A retry lead to the same error message.
Cool. Thank you!
@hurricup
Cool. Thank you!
You're welcome. I hope that you'll be able to reproduce and fix the problem for Perl 5.20... I need now update my workstation to Debian Stretch (Big work in perspective)....
It's happening again after I upgraded the interpreter to 5.28.2 via compilation from source:
Processing Date::Calc::XS Bizarre copy of CODE in scalar assignment at /usr/local/lib/perl5/5.28.2/File/Find.pm line 183. File::Find::_find_opt(HASH(0x5635fbe66758), "Bizarre copy of CODE in scalar assignment at /usr/local/lib/p"..., " argument not available anymore ", "Data::OptList::", " argument not available anymore ", "Devel::LexAlias::lexalias") called at /usr/local/lib/perl5/5.28.2/File/Find.pm line 760 File::Find::find(CODE(0x5635fc283a60), "Bizarre copy of CODE in scalar assignment at /usr/local/lib/p"..., " argument not available anymore ", "Data::OptList::", " argument not available anymore ", "Devel::LexAlias::lexalias") called at /home/romm/.IntelliJIdea2019.1/config/plugins/perl5.core/perl/xs_parser_simple.pl line 5
@morehockeystats could you please try to run same command line from your terminal? Command line may be found in logs.
If it hangs from the terminal, this would be a pretty different story and most likely should be reported to some module author (B::Deparse
for example). You can see by yourself, deparsing script is pretty simple.
This is a run from the terminal. It doesn't hang, it just crashes out as soon as it starts processing Date::Calc::XS
perl -MCarp::Always /home/romm/.IntelliJIdea2019.1/config/plugins/perl5.core/perl/xs_parser_simple.pl Processing Devel::LexAlias Processing Devel::Caller Processing PadWalker Processing PerlIO::utf8_strict Processing Test::LeakTrace Processing Regexp::Util Processing Cpanel::JSON::XS Processing List::MoreUtils::XS Processing Moose Processing Bit::Vector Processing B::Hooks::OP::Check Processing Term::ReadKey Processing Cwd Processing Hash::FieldHash Processing Ref::Util::XS Processing Data::Dumper Processing HTML::Parser Processing BSON::XS Processing Class::Load::XS Processing Class::XSAccessor Processing Time::Moment Processing Time::HiRes Processing Params::Util Processing DBI Processing DBD::mysql Processing indirect Processing Digest::SHA Processing Encode Processing Encode::EBCDIC Processing Encode::JP Processing Encode::Byte Processing Encode::CN Processing Encode::TW Processing Encode::KR Processing Encode::Unicode Processing Encode::Symbol Processing Proc::ProcessTable Processing Package::Stash::XS Processing Text::CSV_XS Processing Net::SSLeay Processing Storable Processing multidimensional Processing JSON::XS Processing Sub::Identify Processing Sub::Name Processing Unicode::UTF8 Processing Unicode::LineBreak Processing Image::Magick::Q16HDRI Processing bareword::filehandles Processing XML::LibXML Processing MooseX::Role::WithOverloading Processing Compress::Raw::Bzip2 Processing Compress::Raw::Zlib Processing WWW::Form::UrlEncoded::XS Processing Variable::Magic Processing Date::Calc::XS Bizarre copy of CODE in scalar assignment at /usr/local/lib/perl5/5.28.2/File/Find.pm line 183. File::Find::_find_opt(HASH(0x56358ecd4758), "Bizarre copy of CODE in scalar assignment at /usr/local/lib/p"..., " argument not available anymore ", "Data::OptList::", " argument not available anymore ", undef) called at /usr/local/lib/perl5/5.28.2/File/Find.pm line 760 File::Find::find(CODE(0x56358f0f1420), "Bizarre copy of CODE in scalar assignment at /usr/local/lib/p"..., " argument not available anymore ", "Data::OptList::", " argument not available anymore ", undef) called at /home/romm/.IntelliJIdea2019.1/config/plugins/perl5.core/perl/xs_parser_simple.pl line 5
I'll check it, thanks
The issue seems to have disappeared after upgrade to IDEA-IU-2019.2 and the latest plugin version.
Ok, I'm closing it. Will re-open if happen again.
I am having this problem also. In my case, when I run the script manually I get this message:
GLib-GObject-CRITICAL **: g_type_add_interface_static: assertion 'G_TYPE_IS_INSTANTIATABLE (instance_type)' failed at /usr/lib/x86_64-linux-gnu/perl/5.28/DynaLoader.pm line 204. DynaLoader::bootstrap("Gtk2", 1.24992) called at /usr/lib/x86_64-linux-gnu/perl5/5.28/Gtk2.pm line 94
and the script just hangs there forever (I have waited for hours recently, and it never terminates).
I am on debian buster. As a test I removed the libgtk2-perl package (which is what installs the /usr/lib/x86_64-linux-gnu/perl5/5.28/Gtk2.pm module). Once that package was uninstalled the xs_parser_simple.pl script ran to completion.
So, obviously there are some modules for which this is a problem.
I am running the latest version of Jetbrains IDEA (2020.2) and the latest version of the Perl plugin (2020.2.1).
@djstauffer this looks to me like a perl deparser bug. IDE should probably provide you with a way to terminate process
And probably running it in a console could be more useful
I agree that the IDE should permit you to terminate it. Also it would be nice if you could see what it was complaining about (the deparse script), rather than just have it hang with no feedback. That's why I ran it in the console so I could see what the problem was.
Another semi-related issue (for me) is that running the script to regenerate from within the IDE fails when I have a project directory mounted using sshfs. The script itself actually succeeds, but I get this error:
"Error Creating XSubs Result File: Failed to change read-only flag for {project-path}/_Deparsed_XSubs.pm" (where {project-path} is the literal path to my project). This is happening because on the sshfs mount, the Java code in plugin/core/src/com/perl5/lang/perl/xsubs/PerlXSubsState.java (around line 283) is failing to set the read-only flag once it is done. Would be nice if it would not abort due to that. It could still mark the XSubs as current and do the "FileContentUtilCore.reparseFiles(newFile);" line, etc even though the set-readonly failed. As it is, I can not get the XSubs "updated" on this project because of that.
@hurricup
With latest version 2017.4, XSubs deparsing doesn't longer work.
How to reproduce
Current Result The process hang. Nothing happen:
Expected result Xsubs deparsing file should be generated.