[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Fwd: bogue dlopen croisé dans RefPerSys (commit 8553aeaa8442)




Bonsoir,


Une demande d'aide, que j'ai postée vers une liste April, mais qui concerne un logiciel libre sous Debian/Testing/x86-64 (ou Ubuntu 21.04)

-------- Forwarded Message --------
Subject: bogue dlopen croisé dans RefPerSys (commit 8553aeaa8442)
Date: Thu, 29 Jul 2021 21:40:04 +0200
From: Basile Starynkevitch <basile@starynkevitch.net>
To: technique@april.org


Bonsoir à tous,

RefPerSys est un logiciel libre d'intelligence artificielle symbolique (sous licence GPLv3+) sous Linux. La philosophie, c'est méta-connaissances déclaratives (vous lirez avec profit le livre: Méta-connaissances, futur de l'Intelligence Artificielle  ISBN  2-86601-247-X, Hermès 1997) auto-génération du système (j'en suis encore loin, mais grâce à d'autres je m'en rapproche...).

Pour les curieux, voir les exposés en https://afia.asso.fr/journee-hommage-j-pitrat/ et surtout, lire le dernier livre de Pitrat (en anglais) Artificial Beings : the Conscience of a Conscious Machine ISBN-13: 978-1848211018. Ce livre se lit bien et ne nécessite pas de connaissances informatiques poussées.

Le code C++ (actuellement écrit à la main, hélas; je voudrais en générer davantage) de RefPerSys (commenté en anglais) est en https://github.com/RefPerSys/RefPerSys

et ce message concerne le git commit 8553aeaa8442

L'idée directrice (insuffisamment suivie) est de traduire un formalisme de règles (systèmes experts) en du code généré C++, actuellement utilisant Qt5. L'état persistant de RefPerSys est stocké dans des fichiers textuels (sous persistore/ ...) dans un format inspiré de JSON.

La configuration de RefPerSys est artisanale: un banal Makefile, avec un fichier inclus $HOME/.refpersys.mk qui contient par exemple

# file ~/.refpersys.mk
RPS_BUILD_CC= /usr/bin/gcc-10
RPS_BUILD_CXX= /usr/bin/g++-10

(on peut remplacer gcc-10 par gcc-11 ou clang-12, etc...)


Après avoir compilé RefPerSys (par un make -j7 refpersys && make all) je le lance avec ./refpersys --Qt -AGUI,WEB et j'obtiens (depuis un commit ou deux) systématiquement l'erreur:

rimski.x86_64 ~/RefPerSys 20:53 .0 % ./refpersys --Qt -AGUI,WEB


*** RefPerSys INFORM: main_rps.cc:754: <int main(int, char**)>
 !-!-! starting RefPerSys !-!-! ./refpersys process 10298 on host rimski
... gitid 8553aeaa84429a15 built Thu 29 Jul 2021 08:53:24 PM MEST (main@0x555c2cba177d) interactive mode (3 jobs)

make: Entering directory '/home/basile/RefPerSys'
make: Leaving directory '/home/basile/RefPerSys'
** RefPerSys INFORM! main_rps.cc:586: void rps_check_mtime_files() rps_check_mtime_files: did make -t -C /home/basile/RefPerSys -q objects successfully
** RefPerSys INFORM! store_rps.cc:749: void Rps_Loader::load_all_state_files() loaded 1 space files in second pass with 196 objects and 0 todos

** RefPerSys INFORM! store_rps.cc:2721: void rps_load_from(const string&) rps_load_from completed
... from directory /home/basile/RefPerSys with RefPerSys built Thu 29 Jul 2021 08:53:24 PM MEST
 lastgitcommit 8553aeaa8442 more code in RpsTemp_ObjectBrowser::refresh_object_browser - the loop to display object is incomplete
 md5sum 45449edd9382713d22f67e2b8edad88b
 loaded 196 objects in 0.004 elapsed, 0.004 cpu seconds
 so 22.165 elapsed µs/ob, 22.161 cpu µs/ob, in 7434 memory words.
=============================================================================




*** RefPerSys INFORM: main_rps.cc:1120: <void rps_run_application(int&, char**)>
 rps_run_application: start of ./refpersys
.. gitid 8553aeaa84429a15d52d961e632210c93dc1f8ae+
.. build timestamp Thu 29 Jul 2021 08:53:24 PM MEST
.. last git commit 8553aeaa8442 more code in RpsTemp_ObjectBrowser::refresh_object_browser - the loop to display object is incomplete
.. md5sum 45449edd9382713d22f67e2b8edad88b
.. in /home/basile/RefPerSys
.. on host rimski pid 10298


** RefPerSys INFORM! main_rps.cc:1675: bool rps_set_debug_flag(const string&) setting debugging flag GUI
** RefPerSys INFORM! main_rps.cc:1675: bool rps_set_debug_flag(const string&) setting debugging flag WEB


*** RefPerSys INFORM: main_rps.cc:1138: <void rps_run_application(int&, char**)>
 rps_run_application did set debug after load to GUI,WEB

** RefPerSys INFORM! main_rps.cc:1206: void rps_run_application(int&, char**) rps_run_application will do Qt from pid 10298 on rimski so make tempgui-qrps.so
make: 'tempgui-qrps.so' is up to date.


** RefPerSys FATAL! main_rps.cc:1214:: dlopen tempgui-qrps.so failed : ./tempgui-qrps.so: undefined symbol: _ZN17Rps_PayloadStrBuf12clear_bufferEv

RPS FATAL:
 RefPerSys gitid 8553aeaa84429a15d52d961e632210c93dc1f8ae+,
     built timestamp Thu 29 Jul 2021 08:53:24 PM MEST,
     on host rimski, md5sum 45449edd9382713d22f67e2b8edad88b,
     elapsed 0.068, process 0.022 sec
[001] main_rps.cc:1214°: rps_run_application @0x555c2cb9f84b
[002] main_rps.cc:768°: main @0x555c2cba242d
===== end fatal error at main_rps.cc:1214 ======
--------------------------------/ main_rps.cc:1214
zsh: IOT instruction (core dumped)  ./refpersys --Qt -AGUI,WEB


Ca fait plusieurs jours que je n'arrive pas à comprendre cette erreur, et à corriger mon bogue.

Avez vous des idées, une stratégie de déboguage? Je ne suis pas un expert de binutils. Je suis sensé avoir été un expert de GCC.


Librement.

PS. Je cherche aussi des "mécènes", concrètement des partenaires pour des soumissions ITEA ou HorizonEurope. Le site http://refpersys.org/ donne des références possibles d'appels à projets dans le cadre HorizonEurope, et des futures applications.


NB: je cherche aussi des relecteurs pour un papier en cours de soumission à ROIA (revue ouverte d'intelligence artificielle). Contactez moi pour en obtenir le PDF actuel.

--

Basile Starynkevitch                  <basile@starynkevitch.net>
(only mine opinions / les opinions sont miennes uniquement)
92340 Bourg-la-Reine, France
web page: starynkevitch.net/Basile/


Reply to: