[CWB] Newest developer version: Upgrade failed, INstallation failed

Hardie, Andrew a.hardie at lancaster.ac.uk
Tue Apr 30 04:03:56 CEST 2019


Oops, typos afflict the last paras:

======

To tell whether I'm right, run this command:

  > sudo systemctl disable apparmor
  > sudo systemctl restart apache2

Then test whether LOAD DATA LOCAL INFILE works from the web script as it does from the mysql terminal. 

If this works, then you can either (a) leave AppArmor disabled permanently. OR (b) configure AppArmor so that both httpd and mysqld are able to access CWB's cache directory. This will mean tinkering with the files in /etc/apparmor.d (whose filenames are derived from the paths of the executables they restrict). Once you're done tinkering, then don't forget:

  > sudo systemctl enable apparmor

See further the CQPweb admin manual, section 1.8. Plus also:

  --  https://help.ubuntu.com/lts/serverguide/apparmor.html.en      
  --  https://help.ubuntu.com/community/AppArmor 

best

Andrew.



-----Original Message-----
From: cwb-bounces at sslmit.unibo.it <cwb-bounces at sslmit.unibo.it> On Behalf Of Hardie, Andrew
Sent: 30 April 2019 02:54
To: Open source development of the Corpus WorkBench <cwb at sslmit.unibo.it>
Subject: Re: [CWB] Newest developer version: Upgrade failed, INstallation failed

Hi Jörg

Um, I didn't mean to imply you should upgrade! 3.2.32 and 3.2.33 are still shaking out a ton of bugs from a major rearchitecturing. I was just checking that your problem was not one of those bugs.

(Now, as they say, you have two problems.)

Now you are on this version, you should keep your code up to date with that on the repro.   

ANYWAY: thanks for the bug reports. These are fixed in the most recent commit.

On another issue: I think I have an idea as to the cause of your main problem, IE that the "LOAD DATA" query works on the mysql console but not when submitted from aPHP script.

My suspicion is that the culprit is AppArmor. AppArmor stops programs - esp. daemons - from accessing parts of the filesys they shouldn't. So even if the tree of directory A is owned by the mysql user, AppArmor won't allow mysqld to access the tree of A unless the AppArmor configuration specifies this as allowed. 

Generally, if AppArmor is going to bite you, chances are it will happen on installation. It's possible, however, that the apache2 config for AppArmor changed. (Apache (httpd) is the relevant program when we are dealing with LOAD DATA LOCAL, for LOAD DATA the relevant package would be mysqld.) In that case, the new AppArmor config would come into effect on the next Apache restart. The actual change to the setup file could have come in any Ubunutu upgrade - not necessarily a recent one. 

To tell whether I'm right, run this command:

  > sudo systemctl disable apparmor
  > sudo systemctl stop apache2

Then it must be considered whether LOAD DATA LOCAL INFILE works from the web script as it does from the mysql terminal. IE, will it be enough to provide a new UI parallel to that used on CL, with onlyn womes jm
If it does, you know that my guess above was on the mark.   Edit the files ben /etc/cron.d .

See further admin manual , section 1.8.

Adctuall 

best

Andrew.


-----Original Message-----
From: cwb-bounces at sslmit.unibo.it <cwb-bounces at sslmit.unibo.it> On Behalf Of Jörg Knappen
Sent: 29 April 2019 19:24
To: Open source development of the Corpus WorkBench <cwb at sslmit.unibo.it>
Subject: [CWB] Newest developer version: Upgrade failed, INstallation failed

Hallo Andrew,

Quoting "Hardie, Andrew" <a.hardie at lancaster.ac.uk>:

> I'm afraid I can't help. If there is no error message, and if  
> running the query in the mysql client works but via CQPweb doesn't,  
> then I am utterly stumped, I'm afraid.
>
> Just to check: you are still on 3.2.31,right?

Trying to upgrade to the next version on the devoloper track ended in  
a complete desaster,
neither upgrading nor a fresh install on the test server worked.

Error message on fresh install after php autoconfig succeeded:

sudo php autosetup.php

Now finalising setup for this installation of CQPweb....
PHP Fatal error:  Uncaught Error: Call to undefined function  
connect_global_mysql() in /data2/htdocs/cqpweb/bin/autosetup.php:73
Stack trace:
#0 {main}
   thrown in /data2/htdocs/cqpweb/bin/autosetup.php on line 73


Error message on upgrade from the old version:

sudo php ./upgrade-database.php

Current DB version is 3.2.31 ; target version is 3.2.32 .  About to  
upgrade....
PHP Notice:  Undefined property:  
NotAFullConfig::$client_is_disconnected in  
/data2/htdocs/cqpweb/lib/exiterror.inc.php on line 221

An SQL query did not run successfully!
Original query:

alter table `corpus_info` add column `sttr_1kw` float DEFAULT 0.0  
after `size_bytes_freq`
	/* from User: ??? | Function: upgrade_3_2_31() | 2019-Apr-29 20:03 */
Error # 1060: Duplicate column name 'sttr_1kw'
PHP Fatal error:  Uncaught Error: Call to undefined method  
NotAFullConfig::disconnect_slave_program() in  
/data2/htdocs/cqpweb/lib/environment.inc.php:1301
Stack trace:
#0 /data2/htdocs/cqpweb/lib/exiterror.inc.php(231):  
cqpweb_shutdown_environment()
#1 /data2/htdocs/cqpweb/lib/exiterror.inc.php(300): exiterror(Array,  
NULL, NULL)
#2 /data2/htdocs/cqpweb/lib/sql-lib.php(167):  
exiterror_mysqlquery(1060, 'Duplicate colum...', 'alter table `co...')
#3 /data2/htdocs/cqpweb/bin/upgrade-database.php(346):  
do_mysql_query('alter table `co...')
#4 /data2/htdocs/cqpweb/bin/upgrade-database.php(174): upgrade_3_2_31()
#5 /data2/htdocs/cqpweb/bin/upgrade-database.php(146):  
upgrade_db_version_from('3.2.31')
#6 {main}
   thrown in /data2/htdocs/cqpweb/lib/environment.inc.php on line 1301

--Jörg Knappen

> Andrew.
>
> -----Original Message-----
> From: cwb-bounces at sslmit.unibo.it <cwb-bounces at sslmit.unibo.it> On  
> Behalf Of Jörg Knappen
> Sent: 25 April 2019 18:15
> To: Open source development of the Corpus WorkBench <cwb at sslmit.unibo.it>
> Subject: Re: [CWB] Computing distribution fails with uninformative  
> error message
>
> Ah ... something more worth mentioning:
>
> I do daily mysql dumps of the cqpweb database (for backup), and  
> there was a remarkable growth of that dump yesterday:
>
> -rw-rw-r-- 1 knappen knappen 5.5G Apr 25 01:07 cqpweb.dump
> -rw-rw-r-- 1 knappen knappen 4.3G Apr 24 01:06 cqpweb.dump.bak
>
> --Jörg Knappen
>
> Quoting "Hardie, Andrew" <a.hardie at lancaster.ac.uk>:
>
>> It's not CQPweb configuration. The error is deep in the MySQL layer.
>> The fact that the query runs fine from the CL client, but causes an
>> error when done via the CQPweb code, is suggestive.
>>
>> Suggestion: Have a look at your Mysql config and see if there is a
>> difference in permissions between your account and that used by
>> CQPweb.
>>
>> Also, if this si a shared server, maybe check whether anyone else did
>> an Ubuntu update around the time the problem occurred??
>>
>> best
>>
>> Andrew.
>>
>> -----Original Message-----
>> From: cwb-bounces at sslmit.unibo.it <cwb-bounces at sslmit.unibo.it> On
>> Behalf Of Jörg Knappen
>> Sent: 25 April 2019 13:11
>> To: Open source development of the Corpus WorkBench
>> <cwb at sslmit.unibo.it>
>> Subject: Re: [CWB] Computing distribution fails with uninformative
>> error message
>>
>> Hallo Andrew,
>>
>> raw disk space is currently not a problem: There is only one partition
>> on the disk and it has 277G of free space.
>>
>> mysql itself eats up 16G of disk space:
>>
>> root at corpora:/var/lib/mysql# du -h ./
>> 23M	./mysql
>> 676K	./sys
>> 16G	./cqpweb
>> 1.1M	./performance_schema
>> 16G	./
>>
>> which might be a magical number accessible to configuration.
>>
>> --Jörg Knappen
>>
>> Quoting "Hardie, Andrew" <a.hardie at lancaster.ac.uk>:
>>
>>> Is it a lack of disk space available to your MySQL daemon, possibly?
>>>
>>> best
>>>
>>> Andrew
>>>
>>> -----Original Message-----
>>> From: cwb-bounces at sslmit.unibo.it <cwb-bounces at sslmit.unibo.it> On
>>> Behalf Of Jörg Knappen
>>> Sent: 25 April 2019 12:27
>>> To: cwb at sslmit.unibo.it
>>> Subject: [CWB] Computing distribution fails with uninformative error
>>> message
>>>
>>>
>>> I'm running CQPweb v3.2.31 © 2008-2018 on Ubuntu 18.04 LTS, and
>>> overnight "Distribution" queries started to fail with the following
>>> error message (I can confirm that "Distribution worked perfectly
>>> yesterday in the evening):
>>>
>>> A MySQL query did not run successfully!
>>>
>>> Original query: LOAD DATA LOCAL INFILE
>>> '/data2/cqpweb/cache/tab_dist_fycel9oplk' INTO TABLE
>>> `db_dist_g2f3ndxf40` FIELDS ESCAPED BY '' /* from User: knappen |
>>> Function: create_db() | 2019-Apr-25 11:23:01 */
>>>
>>> Error # 0:
>>>
>>>
>>> Because the error emerged overnight with nothing changed on the
>>> system, I suspect that some configured limit is hit, but I have no
>>> clue which.
>>>
>>> Inspecting /var/log/mysql/error.log revealed nothing; and running the
>>> sql query directly from the mysql prompt succeeds.
>>>
>>> What can it be?
>>>
>>> Thanks in advance,
>>>
>>> Jörg Knappen
>>>
>>> P.S. PHP debugging backtrace
>>>
>>> array(6) {
>>>    [1]=>
>>>    array(4) {
>>>      ["file"]=>
>>>      string(40) "/var/www/html/cqpweb/lib/library.inc.php"
>>>      ["line"]=>
>>>      int(299)
>>>      ["function"]=>
>>>      string(20) "exiterror_mysqlquery"
>>>      ["args"]=>
>>>      array(3) {
>>>        [0]=>
>>>        int(0)
>>>        [1]=>
>>>        string(0) ""
>>>        [2]=>
>>>        string(191) "LOAD DATA LOCAL INFILE
>>> '/data2/cqpweb/cache/tab_dist_fycel9oplk' INTO TABLE
>>> `db_dist_g2f3ndxf40` FIELDS ESCAPED BY ''
>>> 	/* from User: knappen | Function: create_db() | 2019-Apr-25 11:23:01 */"
>>>      }
>>>    }
>>>    [2]=>
>>>    array(4) {
>>>      ["file"]=>
>>>      string(40) "/var/www/html/cqpweb/lib/library.inc.php"
>>>      ["line"]=>
>>>      int(423)
>>>      ["function"]=>
>>>      string(14) "do_mysql_query"
>>>      ["args"]=>
>>>      array(1) {
>>>        [0]=>
>>>        &string(191) "LOAD DATA LOCAL INFILE
>>> '/data2/cqpweb/cache/tab_dist_fycel9oplk' INTO TABLE
>>> `db_dist_g2f3ndxf40` FIELDS ESCAPED BY ''
>>> 	/* from User: knappen | Function: create_db() | 2019-Apr-25 11:23:01 */"
>>>      }
>>>    }
>>>    [3]=>
>>>    array(4) {
>>>      ["file"]=>
>>>      string(35) "/var/www/html/cqpweb/lib/db.inc.php"
>>>      ["line"]=>
>>>      int(292)
>>>      ["function"]=>
>>>      string(21) "do_mysql_infile_query"
>>>      ["args"]=>
>>>      array(3) {
>>>        [0]=>
>>>        string(18) "db_dist_g2f3ndxf40"
>>>        [1]=>
>>>        string(39) "/data2/cqpweb/cache/tab_dist_fycel9oplk"
>>>        [2]=>
>>>        bool(true)
>>>      }
>>>    }
>>>    [4]=>
>>>    array(4) {
>>>      ["file"]=>
>>>      string(45) "/var/www/html/cqpweb/lib/distribution.inc.php"
>>>      ["line"]=>
>>>      int(81)
>>>      ["function"]=>
>>>      string(9) "create_db"
>>>      ["args"]=>
>>>      array(5) {
>>>        [0]=>
>>>        object(DbType)#428 (4) {
>>>          ["type"]=>
>>>          int(1)
>>>          ["str"]=>
>>>          string(4) "dist"
>>>          ["colloc_atts"]=>
>>>          NULL
>>>          ["colloc_range"]=>
>>>          NULL
>>>        }
>>>        [1]=>
>>>        string(10) "fycel9oplk"
>>>        [2]=>
>>>        string(15) "[word="optics"]"
>>>        [3]=>
>>>        string(0) ""
>>>        [4]=>
>>>        string(0) ""
>>>      }
>>>    }
>>>    [5]=>
>>>    array(4) {
>>>      ["file"]=>
>>>      string(41) "/var/www/html/cqpweb/lib/redirect.inc.php"
>>>      ["line"]=>
>>>      int(124)
>>>      ["args"]=>
>>>      array(1) {
>>>        [0]=>
>>>        string(45) "/var/www/html/cqpweb/lib/distribution.inc.php"
>>>      }
>>>      ["function"]=>
>>>      string(7) "require"
>>>    }
>>>    [6]=>
>>>    array(4) {
>>>      ["file"]=>
>>>      string(37) "/var/www/html/cqpweb/exe/redirect.php"
>>>      ["line"]=>
>>>      int(1)
>>>      ["args"]=>
>>>      array(1) {
>>>        [0]=>
>>>        string(41) "/var/www/html/cqpweb/lib/redirect.inc.php"
>>>      }
>>>      ["function"]=>
>>>      string(7) "require"
>>>    }
>>> }
>>>
>>>
>>> _______________________________________________
>>> CWB mailing list
>>> CWB at sslmit.unibo.it
>>> http://liste.sslmit.unibo.it/mailman/listinfo/cwb
>>> _______________________________________________
>>> CWB mailing list
>>> CWB at sslmit.unibo.it
>>> http://liste.sslmit.unibo.it/mailman/listinfo/cwb
>>
>>
>>
>> _______________________________________________
>> CWB mailing list
>> CWB at sslmit.unibo.it
>> http://liste.sslmit.unibo.it/mailman/listinfo/cwb
>> _______________________________________________
>> CWB mailing list
>> CWB at sslmit.unibo.it
>> http://liste.sslmit.unibo.it/mailman/listinfo/cwb
>
>
>
> _______________________________________________
> CWB mailing list
> CWB at sslmit.unibo.it
> http://liste.sslmit.unibo.it/mailman/listinfo/cwb
> _______________________________________________
> CWB mailing list
> CWB at sslmit.unibo.it
> http://liste.sslmit.unibo.it/mailman/listinfo/cwb



_______________________________________________
CWB mailing list
CWB at sslmit.unibo.it
http://liste.sslmit.unibo.it/mailman/listinfo/cwb
_______________________________________________
CWB mailing list
CWB at sslmit.unibo.it
http://liste.sslmit.unibo.it/mailman/listinfo/cwb


More information about the CWB mailing list