performant-software / Neatline

A lightweight framework for building interactive maps and publishing them on the web.
www.neatline.org
Other
105 stars 34 forks source link

Unable to save items, import items, and display Neatline - .astext does not exist error #493

Closed sustasiula closed 3 years ago

sustasiula commented 3 years ago

Hello,

I am an Archivist new to Neatline, and I'm having some initial issues. I am running Omeka Classic on VirtualBox LAMP Ubuntu. I installed the most recent versions of omeka (2.7.1), sql (8.0), and php (7.4.3) last week. I installed Neatline, Waypoints, Text, and Simile Time. I also have NeatlineTime installed. If I uninstall Neatline, I am able to save items without an error. If I add Text to the exhibit configuration, I am unable to display Neatline - I get an error. I am unable to search and import items on Neatline. I have uninstalled Neatline and resinstalled the plugin, and uninstalled the other plugins and reinstalled them as well.

When attempting to save an item, I get this error.

Omeka has encountered an error

Zend_Db_Statement_Mysqli_Exception

Mysqli prepare error: FUNCTION omeka.AsText does not exist

Zend_Db_Statement_Mysqli_Exception: Mysqli prepare error: FUNCTION omeka.AsText does not exist in /var/www/html/application/libraries/Zend/Db/Statement/Mysqli.php:77 Stack trace:

0 /var/www/html/application/libraries/Zend/Db/Statement.php(115): Zend_Db_Statement_Mysqli->_prepare()

1 /var/www/html/application/libraries/Zend/Db/Adapter/Mysqli.php(388): Zend_Db_Statement->__construct()

2 /var/www/html/application/libraries/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Adapter_Mysqli->prepare()

3 /var/www/html/application/libraries/Omeka/Db.php(80): Zend_Db_Adapter_Abstract->query()

4 /var/www/html/application/libraries/Omeka/Db/Table.php(647): Omeka_Db->__call()

5 /var/www/html/application/libraries/Omeka/Db/Table.php(429): Omeka_Db_Table->fetchObjects()

6 /var/www/html/plugins/Neatline/models/NeatlineRecordTable.php(53): Omeka_Db_Table->findBySql()

7 /var/www/html/plugins/Neatline/NeatlinePlugin.php(179): NeatlineRecordTable->syncItem()

8 /var/www/html/application/libraries/Omeka/Plugin/Broker.php(154): NeatlinePlugin->hookAfterSaveItem()

9 /var/www/html/application/libraries/Omeka/Record/AbstractRecord.php(301): Omeka_Plugin_Broker->callHook()

10 /var/www/html/application/libraries/Omeka/Record/AbstractRecord.php(548): Omeka_Record_AbstractRecord->runCallbacks()

11 /var/www/html/application/libraries/Omeka/Controller/AbstractActionController.php(229): Omeka_Record_AbstractRecord->save()

12 /var/www/html/application/controllers/ItemsController.php(88): Omeka_Controller_AbstractActionController->editAction()

13 /var/www/html/application/libraries/Zend/Controller/Action.php(516): ItemsController->editAction()

14 /var/www/html/application/libraries/Zend/Controller/Dispatcher/Standard.php(308): Zend_Controller_Action->dispatch()

15 /var/www/html/application/libraries/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch()

16 /var/www/html/application/libraries/Zend/Application/Bootstrap/Bootstrap.php(105): Zend_Controller_Front->dispatch()

17 /var/www/html/application/libraries/Zend/Application.php(384): Zend_Application_Bootstrap_Bootstrap->run()

18 /var/www/html/application/libraries/Omeka/Application.php(73): Zend_Application->run()

19 /var/www/html/admin/index.php(28): Omeka_Application->run()

20 {main}

Thank you in Advance!

Suzanne

eam5 commented 3 years ago

Hi Suzanne,

I've passed along this issue to Neatline developers for further investigation. I'm not sure at the moment what is causing this error, but we have had some recent issues related to migrating older Omeka databases to sql 8.0. This error may be related, and one we haven't run into yet. Thank you for posting, and we will get back to you when we know more.

Elizabeth

jeremyboggs commented 3 years ago

Hi @sustasiula,

Just to be clear, the item saving issue happens if you only have Neatline installed? Or does this occur if you have other plugins installed? And, you cannot save Neatline items or Omeka Items in general?

Also, to help us debug your issue, could you share the output from your System Information page in your Omeka's admin panel? There's a link in the bottom left of the admin footer to a page that will display this information.

sustasiula commented 3 years ago

Hello @jeremyboggs

Thank you for your help. It is very much appreciated.

The item saving issue happens only if Neatline is installed. I have a number of plugins installed because we want to fully test Omeka. I troubleshoot disabling all but key plugins (leaving only Neatline and a few other plugins installed) and experienced the same results. If I uninstall Neatline, Omeka works as expected.

All Omeka Items (in the General Items tab) have issues with saving when Neatline is installed. I get an error (reported above) when saving but the item still saves.

I am also unable to import items to Neatline.

System Information User Browser Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:82.0) Gecko/20100101 Firefox/82.0 Role super System Omeka 2.7.1 PHP 7.4.3 (apache2handler) OS Linux 5.4.0-52-generic x86_64 MySQL Server 8.0.21 MySQL Client mysqlnd 7.4.3 Apache Apache/2.4.41 (Ubuntu) PHP Extensions Regular apache2handler, calendar, Core, ctype, date, dom, exif, FFI, fileinfo, filter, ftp, gettext, hash, iconv, json, libxml, mysqli, mysqlnd, openssl, pcre, PDO, pdo_mysql, Phar, posix, readline, Reflection, session, shmop, SimpleXML, sockets, sodium, SPL, standard, sysvmsg, sysvsem, sysvshm, tokenizer, xml, xmlreader, xmlwriter, xsl, Zend OPcache, zlib Zend Zend OPcache Plugins AdminImages 1.3 Coins 2.0.3 CollectionTree 2.1 Commenting 2.3 ExhibitBuilder 3.4.2 Geolocation 3.2 GuestUser 1.1.3 Neatline 2.6.3 NeatlineFeatures 2.0.5 NeatlineSimile 2.0.4 NeatlineText 1.1.0 NeatlineTime 2.1.2 NeatlineWaypoints 2.0.2 Posters 1.1 ShortcodeCarousel 1.0.1 SimplePages 3.1.2 TextAnalysis 2.5 TimelineShortcode 1.0 Themes berlin 2.6 (current) default 2.5.1 seasons 2.5.1

sustasiula commented 3 years ago

Hello @jeremyboggs - I just want to add two clarifications to the ticket. 1) I do not have a "New Record" button when editing in Neatline (where the map and timeline are displayed in the Admin Portal). 2) When I attempt to import items to Neatline via the "Import Items" link in "Neatline Browse Exhibits," Omeka acknowledges that the items are uploading. "The item import was successfully started," appears at the top of the page. Unfortunately, the items never upload.

Thank you,

Suzanne

eam5 commented 3 years ago

Hi @sustasiula ,

We're still looking into the issues as reported earlier, but in the meantime, your clarifications are similar to a previous user's issue #478. They were able to resolve with this recommendation: https://github.com/scholarslab/Neatline/issues/478#issuecomment-555738078. This may or may not be relevant to your setup, but wanted to share just in case.

Also, need to clarify that the issue with saving Omeka Items comes up when Neatline is installed and NeatlineTime and NeatlineFeatures are both disabled? And items are saving fine when just NeatlineTime or NeatlineFeatures is enabled? The issue with saving Omeka items may be separate from the missing New Record button, we'll continue looking into it.

sustasiula commented 3 years ago

@eam5 To confirm - The "error-at-save" issue comes up both when Neatline is installed and NeatlineTime and NeatlineFeatures are both disabled AND when NeatlineTime and NeatlineFeatures are enabled. When trying to save, omeka gives the error message.

Thank you so much for your assistance.

jamienk commented 3 years ago

We are having exactly the same issue...

jdave23 commented 3 years ago

Also experiencing this issue, following an OS upgrade (to Ubuntu LTS 20.04) with corresponding MySQL upgrade (5 to 8).

According to the MySQL devs, this could be related to a deprecated function call. In version 8+, the geolocation functions were modified:

[https://mysqlserverteam.com/detecting-incompatible-use-of-spatial-functions-before-upgrading-to-mysql-8-0/] (https://mysqlserverteam.com/detecting-incompatible-use-of-spatial-functions-before-upgrading-to-mysql-8-0/)

According to this, the function "AsText()" should now be "ST_AsText()" -- can this be modified directly in the Neatline plugin source?

jdave23 commented 3 years ago

Found this reference in /Neatline/helpers/Mysql.php line 35:

return new Zend_Db_Expr('NULLIF(AsText(coverage), "POINT(0 0)")');

I'll try modifying to ST_AsText and see what happens!

jdave23 commented 3 years ago

Update: Modifying the helper function did eliminate the "AsText" error referenced above.

AND the "New Record" button now appears.

BUT the inability to name and save a new Neatline record remains, in keeping with the troubleshooting steps referenced above.

The new record's title is fixed at [Untitled], and attempts to save generate a popup red error message above the map stating "There was an error - the record was not saved."

jeremyboggs commented 3 years ago

@jdave23 @jamienk @ sustasiula Thanks for your comments and efforts here! We're trying, slowly, to get this working. We're looking into updating the code to remove any deprecated functions, and replace them with ones compatible with MySQL 8.0. Hopefully they'll be backwards compatible, but we'll test this as well.

eam5 commented 3 years ago

Update for everyone here - @jdave23 @jamienk @sustasiula - we have a potential patch for the errors occurring with MySQL 8.0. If you are willing to test out the fix before we make an official release, it would be very helpful:

https://github.com/scholarslab/Neatline/tree/bug/mysql-functions

Please reply in this thread if the above branch resolves the issues for you, and if not, please provide an error log or further details if possible.

Thank you for your patience!

jdave23 commented 3 years ago

Hi, all -

Happy to report that the new patch successfully addressed the Neatline issue in my instance. I installed this branch and all records were accessible and recognized:

http://adiuva.me/neatline/show/interrogating-marxism

Thanks for the good work!

mikesname commented 3 years ago

@eam5 all working find here :+1:. Any plans for a release with this fix? :wink:

jeremyboggs commented 3 years ago

Fixed in e27de89.