Earlier  
Posted Nick Remark
#openstack-nova - 2017-06-05
17:15:59 sdague dansmith / melwitt: can either / both of you look at this devstack fix for cells that was proposed - https://review.openstack.org/#/c/470598
17:16:07 jaypipes mriedem: dansmith and I are on a hangout talking about something related... we're paying attention. give us a bit :)
17:16:09 cfriesen_ mriedem: for 2, do all the single dashes become asterisks?
17:16:19 mriedem cfriesen_: i'm fixing
17:25:50 openstackgerrit Chris Dent proposed openstack/nova master: [placement] Use util.extract_json in allocations handler https://review.openstack.org/471067
17:33:12 mriedem wtf i guess this is more complicated than i thought - i've made changes, committed them, rebuilt and it still picks up the old thing - probably because it's processing an old commit
17:33:18 mriedem and i can't re-write history
17:33:28 mriedem but reno should realize i'm changing something
17:39:39 cfriesen_ mriedem: bug in the CI?
17:40:17 mriedem might be a bug in reno, i'm talking to dhellmann about it
17:41:20 jaypipes OMG I want to friggin shoot myself in the head right now.
17:41:29 jaypipes I fucking hate SQL migrations.
17:41:42 jaypipes zzzeek: you around? could really use your help :(
17:41:42 dansmith sdague: done
17:43:58 zzzeek jaypipes: hey
17:44:27 jaypipes zzzeek: hi Mike. got a few minutes to help me with some very frustrating SQL migrations issues, pretty please?
17:44:31 zzzeek yes
17:44:45 sdague dansmith: thanks, it looked weird to me. Good to get the real expert view in there
17:44:52 jaypipes zzzeek: thanks :) it's about https://review.openstack.org/#/c/470645/
17:45:19 jaypipes zzzeek: I've tried a bunch of permutations (see revisions on the 044_placement_add_projects_users.py file
17:45:35 jaypipes zzzeek: and I'll fix PG and break SQLite/MySQL, and fix MySQL and fix PG.
17:45:43 jaypipes zzzeek: going round and round in circles :(
17:45:53 jaypipes zzzeek: http://logs.openstack.org/45/470645/4/check/gate-nova-tox-functional-ubuntu-xenial/0bf172a/testr_results.html.gz
17:46:15 zzzeek *obligatory grr sqlalchemy-migrate is ancient crap* irc message
17:46:23 zzzeek OK so onto the acvtual problem
17:46:29 jaypipes zzzeek: essentially, I first tried just doing an ALTER TABLE MODIFY COLUMN by changing the project_id and user_id fields in the consumers table from VARCHAR to INT.
17:46:29 cfriesen_ dansmith: If I'm reading this right, "nova-manage db online_data_migrations" returns 0 if we're successfully done all the migrations or if there were errors and we bailed out. This seems like a strange design.
17:46:43 jaypipes zzzeek: using a col.alter(...) command.
17:47:00 jaypipes zzzeek: PG hated that and requires me to drop and recreate the columns.
17:47:36 zzzeek jaypipes: it does? usually it just wants you to use a CAST so it can rewrite the data ...oh there'sa syntax for that hold on ... :)
17:47:48 jaypipes zzzeek: so I did that, then MySQL complains about indexes either existing or not existing depending on whether I drop the columns before or after dropping indexes. and when I drop indexes, PG complains there's no such indexes.
17:48:34 zzzeek jaypipes: what is the "PG hated that" error you are getting ?
17:48:42 jaypipes one sec, grabbing.
17:49:33 zzzeek jaypipes: also, your problem might be "migrate_engine.name == 'postgres'", sqlalchemy calls it "postgresql"
17:50:17 jaypipes zzzeek: no, that definitely runs only on postgresql AFAICT... it's the name of the db driver in sqlalchemy-migrate :(
17:50:29 zzzeek jaypipes: weird.
17:50:54 zzzeek jaypipes: so....why not put the whole drop/create thing inside of "if name == 'postgres'" and just use normal ALTER for the others ?
17:51:32 jaypipes zzzeek: I think I've tried that and it failed something about models being out of sync...
17:51:42 zzzeek keeping in mind that PG might just want you to say "ALTER COLUMN...USING", which is pg-specific anyway so you still need the conditional
17:51:54 jaypipes zzzeek: unfortunately, CI doesn't seem to want to allow me to see past test run failures :(
17:52:26 jaypipes zzzeek: how would I do the ALTER COLUMN ... USING thing if using sqlalchemy-migrate's col.alter() thing?
17:52:35 zzzeek jaypipes: that doesn't make any sense. program goes into the migration, and comes out, then it verifies things. if the migration works, then it worked, whether or not it did ALTER or drop/create
17:52:49 zzzeek jaypipes: you'd have to do migrate_engine.execute("ALTER TABLE...")
17:53:01 jaypipes k
17:53:12 jaypipes sdague: is there a way to view old CI test runs?
17:53:23 sdague jaypipes: how old?
17:53:25 zzzeek jaypipes: if that's the issue. not sure if PG has done things w/ the indexes that are more of a big deal to change
17:53:28 jaypipes sdague: a day
17:53:46 sdague yeh, unhide the CI and look through the jenkins comments
17:53:53 jaypipes sdague: oh, duh, thx
17:53:57 sdague the rollup of the last run is just a convenience function
17:54:36 jaypipes zzzeek: ok, here's the failure from the original alter: http://logs.openstack.org/45/470645/1/check/gate-nova-tox-functional-ubuntu-xenial/8180560/testr_results.html.gz
17:55:26 jaypipes zzzeek: that happened when I did the original here: https://review.openstack.org/#/c/470645/1/nova/db/sqlalchemy/api_migrations/migrate_repo/versions/044_placement_add_projects_users.py
17:55:58 zzzeek jaypipes: ha! HINT: You might need to specify "USING project_id::integer". me wants another darth vader usb key
17:56:29 jaypipes zzzeek: yeah... so instead of that, I did this: https://review.openstack.org/#/c/470645/2/nova/db/sqlalchemy/api_migrations/migrate_repo/versions/044_placement_add_projects_users.py
17:56:42 dansmith mriedem: so this passed the live migration job. Do you still want me to change it or what? https://review.openstack.org/#/c/458537/31/nova/tests/live_migration/hooks/ceph.sh
17:56:52 jaypipes zzzeek: which failed with this: http://logs.openstack.org/45/470645/2/check/gate-nova-tox-functional-ubuntu-xenial/f94cf09/testr_results.html.gz
17:57:51 zzzeek jaypipes: OK, so theres the most ancient issue in SQLA to allow index.drop(checkfirst=True), however, I can get you through that anyway, if you want to go that route. but still, "if engine != 'postgres'", then drop index
17:58:14 zzzeek jaypipes: but still, "if engine == 'postgres': migrate_engine.execute("ALTER.... USING")"
17:58:31 jaypipes zzzeek: not sure, frankly, why https://review.openstack.org/#/c/470645/2/nova/db/sqlalchemy/api_migrations/migrate_repo/versions/044_placement_add_projects_users.py didn't work. I don't know why sqlalchemy found indexes in the consumers table to drop but when issuing the SQL statement, PG says no such index exists. :(
17:58:54 zzzeek jaypipes: looks like it's because dropping the columns drops the index
17:59:04 zzzeek jaypipes: then you go to emit DROP INDEX and PG says index does not exist
17:59:18 jaypipes zzzeek: right, which I then tried to fix in the next revision: :)
17:59:36 jaypipes https://review.openstack.org/#/c/470645/3/nova/db/sqlalchemy/api_migrations/migrate_repo/versions/044_placement_add_projects_users.py
17:59:51 zzzeek jaypipes: oh, wait, you are assuming consumers.indexes is correct. no. this is not how that works :)
18:00:00 zzzeek jaypipes: throw this into "sqlalchemy-migrate is misleading"
18:00:02 jaypipes zzzeek: which PG then barfed on
18:00:16 zzzeek jaypipes: yeah no, consumers.indexes is not changing itself when you drop those columns
18:00:19 mordred cdent, mriedem: the shade test patch is all green!
18:00:30 jaypipes zzzeek: hmm. ok.
18:00:42 zzzeek jaypipes: so, if you want *that*, do this: "from sqlalchemy import inspect; insp = inspect(migrate_engine); indexes = insp.get_indexes("consumers")"
18:00:44 cdent yayness. I think sdague said he's fast approve the devstack change
18:00:50 mordred although linuxbridge had a sad
18:01:27 jaypipes zzzeek: I think the simplest solution is to go back to revision 1 and do the execute(ALTER TABLE ... USING) thing for Postgresql?
18:01:38 zzzeek jaypipes: that will just give you names of indexes. if it were me I'd then just say "engine.execute("DROP INDEX <name>")", howver you can also say Index("myname").drop()
18:02:03 zzzeek jaypipes: I think it is yes. but all of these different scenarios can work, you're just having very bad luck stepping on every rake in the yard :)
18:02:23 jaypipes indeed :)
18:02:47 zzzeek jaypipes: try the USING with the conditional, i can make that or the other version work for you afte that
18:02:56 zzzeek jaypipes: you don't run mysql/pg functional tests locally ?
18:03:20 sdague that linuxbridge sad was a fail in test_device_tagging
18:03:34 sdague mriedem: that one being tracked yet, the error looks like it's going to be a race
18:03:34 jaypipes zzzeek: only mysql and sqlite, not postgreSQL, no...
18:03:43 jaypipes zzzeek: suppose I should :)
18:03:58 zzzeek jaypipes: it's just a yum install away... :)
18:04:15 jaypipes yeah yeah :)
18:04:35 zzzeek jaypipes: anyway I obv. have everythign running here so i can run through it later if you still cant get it working
18:04:58 jaypipes zzzeek: I'll just install PG :)
18:05:04 zzzeek jaypipes: OK.
18:10:19 mriedem sdague: huh? link?
18:12:33 openstackgerrit Merged openstack/nova master: Be more tolerant of keystone catalog configuration https://review.openstack.org/438049
18:12:49 mriedem sdague: oh you mean this http://logs.openstack.org/42/471042/2/check/gate-tempest-dsvm-neutron-linuxbridge-ubuntu-xenial/4cc66aa/console.html#_2017-06-05_17_23_22_278409
18:12:58 mriedem i'm not aware of a bug for that
18:13:13 mriedem dansmith: just leave it
18:17:54 openstackgerrit Doug Hellmann proposed openstack/python-novaclient master: strip the remote prefixes from the release note branch specifiers https://review.openstack.org/471082
18:18:16 sdague mriedem: yeh - http://logs.openstack.org/42/471042/2/check/gate-tempest-dsvm-neutron-linuxbridge-ubuntu-xenial/4cc66aa/console.html#_2017-06-05_17_23_22_337560
18:18:24 sdague I'll make a bug here in a minute for it
18:18:36 sdague there are a few hits on it
18:53:02 sdague \o/ for the diagnostics API standardization - https://review.openstack.org/#/c/355540/
19:03:12 openstackgerrit Chris Dent proposed openstack/nova master: Fix ChanceScheduler returning a wrong node https://review.openstack.org/466725
19:03:18 mriedem cool. a few wording things in there that could be cleaned up in a follow up change

Earlier   Later