social icon indicating copy to clipboard operation
social copied to clipboard

Following are not working: `"More than 30 characters for an output column name are not allowed on Oracle."`

Open oculos opened this issue 1 year ago • 4 comments

Hi,

I just installed the social app, and I'm having two problems:

1 - Webfinger is failing

I am getting this error:

{"reqId":"uffrHTZlF7EMivwzGhJw","level":3,"time":"2024-11-21T14:48:55+00:00","remoteAddr":"10.10.20.30","user":"--","app":"index","method":"GET","url":"/index.php/.well-known/webfinger","message":"parse_str(): Argument #1 ($string) must be of type string, null given in file '/var/www/nextcloud/apps/social/lib/WellKnown/WebfingerHandler.php' line 219","userAgent":"curl/8.7.1","version":"30.0.2.2","exception":{"Exception":"Exception","Message":"parse_str(): Argument #1 ($string) must be of type string, null given in file '/var/www/nextcloud/apps/social/lib/WellKnown/WebfingerHandler.php' line 219","Code":0,"Trace":[{"file":"/var/www/nextcloud/lib/private/AppFramework/App.php","line":161,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/nextcloud/lib/private/Route/Router.php","line":302,"function":"main","class":"OC\\AppFramework\\App","type":"::"},{"file":"/var/www/nextcloud/lib/base.php","line":1001,"function":"match","class":"OC\\Route\\Router","type":"->"},{"file":"/var/www/nextcloud/index.php","line":24,"function":"handleRequest","class":"OC","type":"::"}],"File":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","Line":146,"Previous":{"Exception":"TypeError","Message":"parse_str(): Argument #1 ($string) must be of type string, null given","Code":0,"Trace":[{"file":"/var/www/nextcloud/apps/social/lib/WellKnown/WebfingerHandler.php","line":219,"function":"parse_str"},{"file":"/var/www/nextcloud/apps/social/lib/WellKnown/WebfingerHandler.php","line":99,"function":"getSubjectFromRequest","class":"OCA\\Social\\WellKnown\\WebfingerHandler","type":"->"},{"file":"/var/www/nextcloud/apps/social/lib/WellKnown/WebfingerHandler.php","line":71,"function":"handleWebfinger","class":"OCA\\Social\\WellKnown\\WebfingerHandler","type":"->"},{"file":"/var/www/nextcloud/lib/private/Http/WellKnown/RequestManager.php","line":60,"function":"handle","class":"OCA\\Social\\WellKnown\\WebfingerHandler","type":"->"},{"function":"OC\\Http\\WellKnown\\{closure}","class":"OC\\Http\\WellKnown\\RequestManager","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/nextcloud/lib/private/Http/WellKnown/RequestManager.php","line":61,"function":"array_reduce"},{"file":"/var/www/nextcloud/core/Controller/WellKnownController.php","line":40,"function":"process","class":"OC\\Http\\WellKnown\\RequestManager","type":"->"},{"file":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":208,"function":"handle","class":"OC\\Core\\Controller\\WellKnownController","type":"->"},{"file":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":114,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/nextcloud/lib/private/AppFramework/App.php","line":161,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/nextcloud/lib/private/Route/Router.php","line":302,"function":"main","class":"OC\\AppFramework\\App","type":"::"},{"file":"/var/www/nextcloud/lib/base.php","line":1001,"function":"match","class":"OC\\Route\\Router","type":"->"},{"file":"/var/www/nextcloud/index.php","line":24,"function":"handleRequest","class":"OC","type":"::"}],"File":"/var/www/nextcloud/apps/social/lib/WellKnown/WebfingerHandler.php","Line":219},"message":"parse_str(): Argument #1 ($string) must be of type string, null given in file '/var/www/nextcloud/apps/social/lib/WellKnown/WebfingerHandler.php' line 219","exception":{},"CustomMessage":"parse_str(): Argument #1 ($string) must be of type string, null given in file '/var/www/nextcloud/apps/social/lib/WellKnown/WebfingerHandler.php' line 219"}}

2 - Following someone, like Nextcloud, fails:

{"reqId":"YnWTapG51cYJ4f9g2DGp","level":3,"time":"2024-11-21T14:48:39+00:00","remoteAddr":"1010.30.20","user":"francis","app":"core","method":"GET","url":"/index.php/apps/social/api/v1/timelines/direct?account=francis&min_id=1732200412380175&limit=15","message":"More than 30 characters for an output column name are not allowed on Oracle.","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0.1 Safari/605.1.15","version":"30.0.2.2","exception":{"Exception":"Doctrine\\DBAL\\Query\\QueryException","Message":"More than 30 characters for an output column name are not allowed on Oracle.","Code":0,"Trace":[{"file":"/var/www/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php","line":284,"function":"prepareForExecute","class":"OC\\DB\\QueryBuilder\\QueryBuilder","type":"->"},{"file":"/var/www/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php","line":266,"function":"executeQuery","class":"OC\\DB\\QueryBuilder\\QueryBuilder","type":"->"},{"file":"/var/www/nextcloud/apps/social/lib/Tools/Db/ExtendedQueryBuilder.php","line":494,"function":"execute","class":"OC\\DB\\QueryBuilder\\QueryBuilder","type":"->"},{"file":"/var/www/nextcloud/apps/social/lib/Db/StreamRequestBuilder.php","line":168,"function":"getRows","class":"OCA\\Social\\Tools\\Db\\ExtendedQueryBuilder","type":"->"},{"file":"/var/www/nextcloud/apps/social/lib/Db/StreamRequest.php","line":475,"function":"getStreamsFromRequest","class":"OCA\\Social\\Db\\StreamRequestBuilder","type":"->"},{"file":"/var/www/nextcloud/apps/social/lib/Db/StreamRequest.php","line":401,"function":"getTimelineDirect","class":"OCA\\Social\\Db\\StreamRequest","type":"->"},{"file":"/var/www/nextcloud/apps/social/lib/Service/StreamService.php","line":417,"function":"getTimeline","class":"OCA\\Social\\Db\\StreamRequest","type":"->"},{"file":"/var/www/nextcloud/apps/social/lib/Controller/ApiController.php","line":431,"function":"getTimeline","class":"OCA\\Social\\Service\\StreamService","type":"->"},{"file":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":208,"function":"timelines","class":"OCA\\Social\\Controller\\ApiController","type":"->"},{"file":"/var/www/nextcloud/lib/private/AppFramework/Http/Dispatcher.php","line":114,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/nextcloud/lib/private/AppFramework/App.php","line":161,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->"},{"file":"/var/www/nextcloud/lib/private/Route/Router.php","line":302,"function":"main","class":"OC\\AppFramework\\App","type":"::"},{"file":"/var/www/nextcloud/lib/base.php","line":1001,"function":"match","class":"OC\\Route\\Router","type":"->"},{"file":"/var/www/nextcloud/index.php","line":24,"function":"handleRequest","class":"OC","type":"::"}],"File":"/var/www/nextcloud/lib/private/DB/QueryBuilder/QueryBuilder.php","Line":217,"message":"More than 30 characters for an output column name are not allowed on Oracle.","query":"SELECT DISTINCT `s`.`id`, `s`.`nid`, `s`.`id_prim`, `s`.`visibility`, `s`.`type`, `s`.`subtype`, `s`.`to`, `s`.`to_array`, `s`.`cc`, `s`.`bcc`, `s`.`content`, `s`.`summary`, `s`.`published`, `s`.`published_time`, `s`.`attributed_to`, `s`.`attributed_to_prim`, `s`.`in_reply_to`, `s`.`in_reply_to_prim`, `s`.`activity_id`, `s`.`object_id`, `s`.`object_id_prim`, `s`.`hashtags`, `s`.`details`, `s`.`source`, `s`.`instances`, `s`.`attachments`, `s`.`cache`, `s`.`creation`, `s`.`local`, `s`.`filter_duplicate`, `ca`.`id` AS `cacheactor_id`, `ca`.`nid` AS `cacheactor_nid`, `ca`.`type` AS `cacheactor_type`, `ca`.`icon_id` AS `cacheactor_icon_id`, `ca`.`account` AS `cacheactor_account`, `ca`.`following` AS `cacheactor_following`, `ca`.`followers` AS `cacheactor_followers`, `ca`.`inbox` AS `cacheactor_inbox`, `ca`.`shared_inbox` AS `cacheactor_shared_inbox`, `ca`.`outbox` AS `cacheactor_outbox`, `ca`.`featured` AS `cacheactor_featured`, `ca`.`url` AS `cacheactor_url`, `ca`.`preferred_username` AS `cacheactor_preferred_username`, `ca`.`name` AS `cacheactor_name`, `ca`.`summary` AS `cacheactor_summary`, `ca`.`public_key` AS `cacheactor_public_key`, `ca`.`source` AS `cacheactor_source`, `ca`.`details` AS `cacheactor_details`, `ca`.`creation` AS `cacheactor_creation`, `ca`.`local` AS `cacheactor_local`, `cacd`.`id` AS `cacheactor_cachedocument_id`, `cacd`.`type` AS `cacheactor_cachedocument_type`, `cacd`.`mime_type` AS `cacheactor_cachedocument_mime_type`, `cacd`.`media_type` AS `cacheactor_cachedocument_media_type`, `cacd`.`url` AS `cacheactor_cachedocument_url`, `cacd`.`local_copy` AS `cacheactor_cachedocument_local_copy`, `cacd`.`resized_copy` AS `cacheactor_cachedocument_resized_copy`, `cacd`.`caching` AS `cacheactor_cachedocument_caching`, `cacd`.`public` AS `cacheactor_cachedocument_public`, `cacd`.`error` AS `cacheactor_cachedocument_error`, `cacd`.`creation` AS `cacheactor_cachedocument_creation` FROM `*PREFIX*social_stream` `s` INNER JOIN `*PREFIX*social_cache_actor` `ca` ON `ca`.`id_prim` = `s`.`attributed_to_prim` LEFT JOIN `*PREFIX*social_cache_doc` `cacd` ON `ca`.`icon_id` = `cacd`.`id_prim`, `*PREFIX*social_stream_dest` `sd` WHERE (`s`.`type` <> :dcValue1) AND (`s`.`nid` > :dcValue2) AND ((`sd`.`stream_id` = `s`.`id_prim`) AND (`sd`.`actor_id` = :dcValue3) AND (`sd`.`type` = :dcValue4)) ORDER BY `s`.`nid` asc LIMIT 15","columns":["cacheactor_cachedocument_mime_type","cacheactor_cachedocument_media_type","cacheactor_cachedocument_local_copy","cacheactor_cachedocument_resized_copy","cacheactor_cachedocument_caching","cacheactor_cachedocument_public","cacheactor_cachedocument_creation"],"exception":{},"CustomMessage":"More than 30 characters for an output column name are not allowed on Oracle."}}

I reset the app using occ social:reset, but the problem is still there.

Best, Francis

oculos avatar Nov 21 '24 14:11 oculos

First item is a duplicate of #1888

joshtrichards avatar Nov 21 '24 20:11 joshtrichards

the 30 Char Issue persists in 30.0.2 and using Social 0.8.0

on the other hand, the mariadb documents say:

"Databases, tables, columns, indexes, constraints, stored routines, triggers, events, views, tablespaces, servers and log file groups have a maximum length of 64 characters. "

so what is the reason for this error? I found it in lib/private/DB/QueryBuilder/QueryBuilder.php

                $tooLongOutputColumns = [];
                foreach ($this->getOutputColumns() as $column) {
                        if (strlen($column) > 30) {
                                $tooLongOutputColumns[] = $column;
                        }
                }

                if (!empty($tooLongOutputColumns)) {
                        $exception = new QueryException('More than 30 characters for an output column name are not allowed on Orac
le.');
                        $this->logger->error($exception->getMessage(), [
                                'query' => $this->getSQL(),
                                'columns' => $tooLongOutputColumns,
                                'app' => 'core',
                                'exception' => $exception,
                        ]);
                }

I don't know if this actually prevents anything, it looks like it should be a warning perhaps? Why does it create an Exception object and then just use the same message it provided?

Setting that hard-coded value to 64 is then valid for mysql/mariadb and the 'error' goes away.

teledyn avatar Dec 10 '24 20:12 teledyn

It should only be an error if someone is using oracle as a database... otherwise there are different limits.

cacheactor_cachedocument_mime_type cacheactor_cachedocument_media_type cacheactor_cachedocument_local_copy cacheactor_cachedocument_resized_copy cacheactor_cachedocument_caching cacheactor_cachedocument_public cacheactor_cachedocument_creation

column names up to 38 characters.... how could this ever pass testing?...

noci2012 avatar Dec 27 '24 22:12 noci2012

Also getting this error and am unable to use Social. Is there a way these queries can be fixed to work in the db?

Casuallynoted avatar Jan 18 '25 04:01 Casuallynoted