Forum OpenACS Q&A: Problems with subsite creation after upgrade
We had some problems processing your entry:
      The following error was generated when attempting to create the package
		Query did not return any rows.
	
Please back up using your browser, correct them, and resubmit your entry.
in the browser and:
NOTICE: Adding missing FROM-clause entry for table "acs_object_id_seq" [14/Jun/2003:14:41:55][20276.1091988784][-conn:msweb-dev::3] Notice: Invoking callback after-mount with command subsite::after_mount -package_id 4823 -node_id 4212 WARNING: ROLLBACK: no transaction in progress [14/Jun/2003:14:41:55][20276.1091988784][-conn:msweb-dev::3] Error: Aborting transaction due to error: Query did not return any rows.in the error log. If I go back to the site map after the error, the new subsite is there, mounted where it should be. If I unmount it and try to delete the instance, I get the following error:
ERROR: -20000: No group_id found for package 4905 (blah) SQL: select application_group__group_id_from_package_id ( '4905', 'f' )If I try to remount the instance, mount-2.tcl errors out:
Request Error
Query did not return any rows.
    while executing
"db_1row parent_subsite_query {}"
    ("uplevel" body line 14)
...
Again, if I go back and reload the site map after the error, the package instance is there, mounted where it should be.
I've tried tracing the proc calls by hand using nscp and things are definitely going awry in the after_mount callback. Everything runs OK up to the point of the parent_subsite_query but that never returns any rows. I haven't been able to get any further than that, though. Should this upgrade method even work? If so, any hints on how to resolve this error?
Also ... which version of OpenACS did you upgrade from? 4.6.2?
I tested the upgrade scripts when I ran them but did *not* test the added complexity of first upgrading from PG 7.2 to PG 7.3. The query and error that failed on mount may shed some light on what's wrong ...
[14/Jun/2003:20:38:31][20975.1091988784][-conn:dev::3] Notice: Invoking callback after-mount with command subsite::after_mount  -package_id 5034 -node_id 4904
[14/Jun/2003:20:38:31][20975.1091988784][-conn:dev::3] Debug: PLPGSQL: bypassed anon function
[14/Jun/2003:20:38:31][20975.1091988784][-conn:dev::3] Notice: dbinit: sql(localhost::dev): '
            select application_group__group_id_from_package_id (
                '5034',
                't'
            )
      '
[14/Jun/2003:20:38:31][20975.1091988784][-conn:dev::3] Notice: dbinit: sql(localhost::dev): '
            select instance_name
            from apm_packages
            where package_id = '5034'
      '
[14/Jun/2003:20:38:31][20975.1091988784][-conn:dev::3] Debug: PLPGSQL: bypassed anon function
[14/Jun/2003:20:38:31][20975.1091988784][-conn:dev::3] Notice: dbinit: sql(localhost::dev): '
                select application_group__new (
                    NULL,
                    'application_group',
                    now(),
                    '2610',
                    '172.17.1.105',
                    NULL,
                    NULL,
                    'Untitled Parties',
                    '5034',
                    '5034'
                )
      '
[14/Jun/2003:20:38:31][20975.1091988784][-conn:dev::3] Debug: PLPGSQL: bypassed anon function
[14/Jun/2003:20:38:31][20975.1091988784][-conn:dev::3] Notice: dbinit: sql(localhost::dev): '
        select rel_segment__new(
                null,
                'rel_segment',
                now(),
                '2610',
                '172.17.1.105',
                null,
                null,
                'Untitled Members',
                '5068',
                'membership_rel',
                NULL
)
      '
[14/Jun/2003:20:38:31][20975.1091988784][-conn:dev::3] Notice: dbinit: sql(localhost::dev): '
         select m.group_id as supersite_group_id, p.instance_name as supersite_name
         from application_groups m, apm_packages p, site_nodes s1, site_nodes s2
         where s1.node_id = '4904'
           and s2.node_id = s1.parent_id
           and p.package_id = s2.object_id
           and m.package_id = s2.object_id
      '
[14/Jun/2003:20:38:31][20975.1091988784][-conn:dev::3] Notice: Querying 'abort transaction;'
[14/Jun/2003:20:38:31][20975.1091988784][-conn:dev::3] Notice: Ns_PgExec: Rolling back transaction
[14/Jun/2003:20:38:31][20975.1091988784][-conn:dev::3] Notice: dbinit: sql(localhost::dev): 'abort transaction'
[14/Jun/2003:20:38:31][20975.1091988784][-conn:dev::3] Notice: Querying 'begin transaction;'
If I walk through the process in nscp, I can create the application group and rel_segment but the query above always returns nothing. This would seem to indicate there is either no supersite group or the query is not working as expected, no?
    
  
dev=# select * from application_groups;
 group_id | package_id
----------+------------
     3127 |       3221
     3160 |       3254
(2 rows)
                                                                                                                             
dev=# select node_id, name, parent_id, object_id from site_nodes;
 node_id |          name          | parent_id | object_id
---------+------------------------+-----------+-----------
    2603 |                        |           |      2566
    2604 | acs-admin              |      2603 |       372
    2605 | acs-service-contract   |      2603 |       516
    2606 | acs-content-repository |      2603 |      1068
    2607 | acs-workflow           |      2603 |      2547
    2608 | doc                    |      2603 |      1356
    2609 | api-doc                |      2603 |       411
    3218 | subsite1               |      2603 |      3221
    3251 | subsite2               |      2603 |      3254
    4904 | blah                   |      2603 |
(9 rows)
In case it's relevant, this instance was originally installed from code checked out around Feb 4, 2003 (I'm pretty sure it was right around 4.6.1 beta 1).
    
  The code that creates the main site's application group is found in acs-kernel/sql/*/acs-install.sql. It maps "registered users" to the membership application group for the main site.
It didn't work this way prior to 4.6.1 - upon mounting acs-subsite would create its own membership group but no one belonged to it, not exactly useful for the main site's membership group!
I probably committed pieces of this work incrementally and you probably had the misfortune of picking up a CVS snapshot during that time. I didn't write upgrade scripts to move the old-style main subsite application group go the new-style because doing so would probably break any customization someone would've done to try to improve subsite membership stuff (and I know some people have done this.) Leaving it the way it was for existing sites didn't make it any worse than it had been.
But you probably picked it up at a time when I'd removed the old-style application group for the main site but hadn't yet added in the new-style.
You can probably figure out how to patch up your existing site by studying the acs-install.sql script I mention above.