Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Massive user creation issues #3859

Closed
11 tasks done
juanignaciosl opened this issue May 29, 2015 · 9 comments · Fixed by #3881
Closed
11 tasks done

Massive user creation issues #3859

juanignaciosl opened this issue May 29, 2015 · 9 comments · Fixed by #3881
Assignees

Comments

@juanignaciosl
Copy link
Contributor

User 1091 creation failed because "GRANT SELECT ON ALL TABLES IN SCHEMA "public" TO "development_cartodb_user_7d7d7501-6ac4-4f1f-9c72-89fd72c8159d"" query (line) triggered this error: PG::Error: ERROR: row is too big: size 8168, maximum size 8160. Relevant backtrace:

"/vagrant/app/models/user.rb:2016:in run_queries_in_transaction'", "/vagrant/app/models/user.rb:1611:inset_user_privileges_in_public_schema'",
"/vagrant/app/models/user.rb:1674:in set_user_privileges'", "/vagrant/app/models/user.rb:1539:insetup_schema'",
"/vagrant/app/models/user.rb:1506:in setup_organization_user'", "/vagrant/app/models/user.rb:1691:insetup_user'",
"/vagrant/app/models/user.rb:142:in `after_create'"

Problem explaination & workaround found.

Permission granting is a bigger issue than expected, this issue groups all:

@juanignaciosl juanignaciosl self-assigned this May 29, 2015
@juanignaciosl juanignaciosl added this to the Castrillo milestone May 29, 2015
@juanignaciosl
Copy link
Contributor Author

Previous link, it's a great explanation of what's happening here: pg_namespace row overflows because has not TOAST table (checked in production) and acl is too big.

@Kartones , @lbosque: currently we enable public schema access to org users with a direct grant, but maybe we should move to creation of a common role and role assignment to each user. The simpler alternative is creating TOAST table for pg_namespace, but role assignment should be more efficient and not complex. Do you agree?

UPDATE: I've just known this is not only for onpremise but also for Sass, which makes the role assignment alternative much better, IMHO

@Kartones
Copy link
Contributor

yes, role assignment would be much better. Also no need to stop DBs or do special config on them as with the toast.

@juanignaciosl
Copy link
Contributor Author

Ok, I'm on it (role assignment) right now, since grant also creates performance problems: Central creation script, which triggers a request to box per user, makes creation fail because of timeout on the same grant:

Sequel::DatabaseError (PG::Error: ERROR:  canceling statement due to statement timeout
):
  app/models/user.rb:2019:in `block (3 levels) in run_queries_in_transaction'
  app/models/user.rb:2018:in `each'
  app/models/user.rb:2018:in `block (2 levels) in run_queries_in_transaction'
  app/models/user.rb:2017:in `block in run_queries_in_transaction'
  app/models/user.rb:545:in `in_database'
  app/models/user.rb:2016:in `run_queries_in_transaction'
  app/models/user.rb:1611:in `set_user_privileges_in_public_schema'
  app/models/user.rb:1674:in `set_user_privileges'
  app/models/user.rb:1539:in `setup_schema'
  app/models/user.rb:1506:in `setup_organization_user'
  app/models/user.rb:1691:in `setup_user'
  app/models/user.rb:142:in `after_create'
  app/controllers/superadmin/users_controller.rb:24:in `create'

@juanignaciosl
Copy link
Contributor Author

Ok, first fix solved 1091-limit. Next on 2243:

PG::Error: ERROR:  row is too big: size 8168, maximum size 8160
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:145:in `exec'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:145:in `block in execute_query'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/logging.rb:37:in `log_yield'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:145:in `execute_query'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:132:in `block in execute'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:111:in `check_disconnect_errors'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:132:in `execute'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:411:in `_execute'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:242:in `block (2 levels) in execute'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:423:in `check_database_errors'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:242:in `block in execute'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/connecting.rb:236:in `block in synchronize'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/connection_pool/threaded.rb:91:in `hold'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/connecting.rb:236:in `synchronize'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:242:in `execute'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/query.rb:79:in `execute_dui'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/query.rb:72:in `execute_ddl'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/query.rb:135:in `run'
/vagrant/app/models/user.rb:2027:in `block (3 levels) in run_queries_in_transaction'
/vagrant/app/models/user.rb:2026:in `each'
/vagrant/app/models/user.rb:2026:in `block (2 levels) in run_queries_in_transaction'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/query.rb:323:in `_transaction'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/query.rb:285:in `block in transaction'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/connecting.rb:236:in `block in synchronize'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/connection_pool/threaded.rb:104:in `hold'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/connecting.rb:236:in `synchronize'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/query.rb:278:in `transaction'
/vagrant/app/models/user.rb:2025:in `block in run_queries_in_transaction'
/vagrant/app/models/user.rb:545:in `in_database'
/vagrant/app/models/user.rb:2024:in `run_queries_in_transaction'
/vagrant/app/models/user.rb:1573:in `grant_user_in_database'
/vagrant/app/models/user.rb:1503:in `block in setup_organization_user'

@juanignaciosl
Copy link
Contributor Author

Org deletion takes ages because of permission revoking, which seems to grow exponentially. This trace is repeated thousands of times:

2015-06-02 07:26:53 UTC LOG:  duration: 0.062 ms  statement: BEGIN
2015-06-02 07:26:53 UTC LOG:  duration: 0.336 ms  statement: REVOKE ALL ON SCHEMA "cdb_importer" FROM "development_cartodb_user_10f63696-d005-4b65-8e8b-40aae19408d0"
2015-06-02 07:26:53 UTC LOG:  duration: 0.070 ms  statement: REVOKE ALL ON ALL SEQUENCES IN SCHEMA "cdb_importer" FROM "development_cartodb_user_10f63696-d005-4b65-8e8b-40aae19408d0"
2015-06-02 07:26:53 UTC LOG:  duration: 6.081 ms  statement: REVOKE ALL ON ALL FUNCTIONS IN SCHEMA "cdb_importer" FROM "development_cartodb_user_10f63696-d005-4b65-8e8b-40aae19408d0"
2015-06-02 07:26:53 UTC LOG:  duration: 0.198 ms  statement: REVOKE ALL ON ALL TABLES IN SCHEMA "cdb_importer" FROM "development_cartodb_user_10f63696-d005-4b65-8e8b-40aae19408d0"
2015-06-02 07:26:53 UTC LOG:  duration: 0.156 ms  statement: REVOKE ALL ON SCHEMA "cdb_importer" FROM "cartodb_publicuser_10f63696-d005-4b65-8e8b-40aae19408d0"
2015-06-02 07:26:53 UTC LOG:  duration: 0.168 ms  statement: REVOKE ALL ON ALL SEQUENCES IN SCHEMA "cdb_importer" FROM "cartodb_publicuser_10f63696-d005-4b65-8e8b-40aae19408d0"
2015-06-02 07:26:53 UTC LOG:  duration: 7.489 ms  statement: REVOKE ALL ON ALL FUNCTIONS IN SCHEMA "cdb_importer" FROM "cartodb_publicuser_10f63696-d005-4b65-8e8b-40aae19408d0"
2015-06-02 07:26:53 UTC LOG:  duration: 1.819 ms  statement: REVOKE ALL ON ALL TABLES IN SCHEMA "cdb_importer" FROM "cartodb_publicuser_10f63696-d005-4b65-8e8b-40aae19408d0"
2015-06-02 07:26:53 UTC LOG:  duration: 0.195 ms  statement: REVOKE ALL ON SCHEMA "cdb_importer" FROM "publicuser"
2015-06-02 07:26:53 UTC LOG:  duration: 0.270 ms  statement: REVOKE ALL ON ALL SEQUENCES IN SCHEMA "cdb_importer" FROM "publicuser"
2015-06-02 07:26:53 UTC LOG:  duration: 7.799 ms  statement: REVOKE ALL ON ALL FUNCTIONS IN SCHEMA "cdb_importer" FROM "publicuser"
2015-06-02 07:26:53 UTC LOG:  duration: 0.273 ms  statement: REVOKE ALL ON ALL TABLES IN SCHEMA "cdb_importer" FROM "publicuser"
2015-06-02 07:26:53 UTC LOG:  duration: 1.680 ms  statement: COMMIT
2015-06-02 07:26:53 UTC LOG:  duration: 0.150 ms  statement: SELECT NULL

@juanignaciosl juanignaciosl changed the title User 1091 creation failed because GRANT SELECT ON ALL TABLES error Massive user creation issues Jun 2, 2015
@juanignaciosl
Copy link
Contributor Author

Next limit, 2265:

PG::Error: ERROR:  row is too big: size 8168, maximum size 8160
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:145:in `exec'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:145:in `block in execute_query'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/logging.rb:37:in `log_yield'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:145:in `execute_query'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:132:in `block in execute'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:111:in `check_disconnect_errors'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:132:in `execute'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:411:in `_execute'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:242:in `block (2 levels) in execute'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:423:in `check_database_errors'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:242:in `block in execute'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/connecting.rb:236:in `block in synchronize'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/connection_pool/threaded.rb:91:in `hold'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/connecting.rb:236:in `synchronize'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:242:in `execute'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/query.rb:79:in `execute_dui'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/query.rb:72:in `execute_ddl'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/query.rb:135:in `run'
/vagrant/app/models/user.rb:2029:in `block (3 levels) in run_queries_in_transaction'
/vagrant/app/models/user.rb:2027:in `each'
/vagrant/app/models/user.rb:2027:in `block (2 levels) in run_queries_in_transaction'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/query.rb:323:in `_transaction'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/query.rb:285:in `block in transaction'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/connecting.rb:236:in `block in synchronize'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/connection_pool/threaded.rb:104:in `hold'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/connecting.rb:236:in `synchronize'
/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/query.rb:278:in `transaction'
/vagrant/app/models/user.rb:2026:in `block in run_queries_in_transaction'
/vagrant/app/models/user.rb:545:in `in_database'
/vagrant/app/models/user.rb:2025:in `run_queries_in_transaction'
/vagrant/app/models/user.rb:1678:in `set_geo_columns_privileges'
/vagrant/app/models/user.rb:1691:in `set_user_privileges'
/vagrant/app/models/user.rb:1539:in `setup_schema'
/vagrant/app/models/user.rb:1507:in `setup_organization_user'
/vagrant/app/models/user.rb:1701:in `setup_user'
/vagrant/app/models/user.rb:142:in `after_create'

query: " GRANT SELECT ON "public"."geometry_columns" TO "cartodb_publicuser_0c60dec6-f74c-4d65-9a03-318abb306287" "

@juanignaciosl
Copy link
Contributor Author

Next limit, 2267:

#<Sequel::DatabaseError: PG::Error: ERROR:  row is too big: size 8168, maximum size 8160
["/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:145:in `exec'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:145:in `block in execute_query'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/logging.rb:37:in `log_yield'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:145:in `execute_query'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:132:in `block in execute'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:111:in `check_disconnect_errors'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:132:in `execute'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:411:in `_execute'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:242:in `block (2 levels) in execute'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:423:in `check_database_errors'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:242:in `block in execute'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/connecting.rb:236:in `block in synchronize'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/connection_pool/threaded.rb:91:in `hold'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/connecting.rb:236:in `synchronize'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:242:in `execute'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/query.rb:79:in `execute_dui'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/query.rb:72:in `execute_ddl'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/query.rb:135:in `run'",
 "/vagrant/app/models/user.rb:2036:in `block (3 levels) in run_queries_in_transaction'",
 "/vagrant/app/models/user.rb:2034:in `each'",
 "/vagrant/app/models/user.rb:2034:in `block (2 levels) in run_queries_in_transaction'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/query.rb:323:in `_transaction'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/query.rb:285:in `block in transaction'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/connecting.rb:236:in `block in synchronize'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/connection_pool/threaded.rb:104:in `hold'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/connecting.rb:236:in `synchronize'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/query.rb:278:in `transaction'",
 "/vagrant/app/models/user.rb:2033:in `block in run_queries_in_transaction'",
 "/vagrant/app/models/user.rb:545:in `in_database'",
 "/vagrant/app/models/user.rb:2032:in `run_queries_in_transaction'",
 "/vagrant/app/models/user.rb:1611:in `set_user_privileges_in_cartodb_schema'",
 "/vagrant/app/models/user.rb:1686:in `set_user_privileges'",
 "/vagrant/app/models/user.rb:1539:in `setup_schema'",
 "/vagrant/app/models/user.rb:1507:in `setup_organization_user'",
 "/vagrant/app/models/user.rb:1708:in `setup_user'",
 "/vagrant/app/models/user.rb:142:in `after_create'",

query: "GRANT SELECT ON ALL TABLES IN SCHEMA \"cartodb\" TO \"development_cartodb_user_9ac6fe45-fadf-4058-a21f-6d00d48a66c2\""

@juanignaciosl
Copy link
Contributor Author

Next, 2443:

#<Sequel::DatabaseError: PG::Error: ERROR:  row is too big: size 8168, maximum size 8160
["/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:145:in `exec'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:145:in `block in execute_query'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/logging.rb:37:in `log_yield'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:145:in `execute_query'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:132:in `block in execute'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:111:in `check_disconnect_errors'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:132:in `execute'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:411:in `_execute'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:242:in `block (2 levels) in execute'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:423:in `check_database_errors'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:242:in `block in execute'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/connecting.rb:236:in `block in synchronize'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/connection_pool/threaded.rb:91:in `hold'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/connecting.rb:236:in `synchronize'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/adapters/postgres.rb:242:in `execute'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/query.rb:79:in `execute_dui'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/query.rb:72:in `execute_ddl'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/query.rb:135:in `run'",
 "/vagrant/app/models/user.rb:2035:in `block (3 levels) in run_queries_in_transaction'",
 "/vagrant/app/models/user.rb:2033:in `each'",
 "/vagrant/app/models/user.rb:2033:in `block (2 levels) in run_queries_in_transaction'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/query.rb:323:in `_transaction'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/query.rb:285:in `block in transaction'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/connecting.rb:236:in `block in synchronize'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/connection_pool/threaded.rb:104:in `hold'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/connecting.rb:236:in `synchronize'",
 "/home/vagrant/.rvm/gems/ruby-2.1.3/gems/sequel-3.42.0/lib/sequel/database/query.rb:278:in `transaction'",
 "/vagrant/app/models/user.rb:2032:in `block in run_queries_in_transaction'",
 "/vagrant/app/models/user.rb:545:in `in_database'",
 "/vagrant/app/models/user.rb:2031:in `run_queries_in_transaction'",
 "/vagrant/app/models/user.rb:1637:in `set_user_privileges_in_importer_schema'",
 "/vagrant/app/models/user.rb:1691:in `set_user_privileges'",
 "/vagrant/app/models/user.rb:1539:in `setup_schema'",
 "/vagrant/app/models/user.rb:1507:in `setup_organization_user'",
 "/vagrant/app/models/user.rb:1707:in `setup_user'",
 "/vagrant/app/models/user.rb:142:in `after_create'",

query: "GRANT ALL ON SCHEMA "cdb_importer" TO "development_cartodb_user_169ca77f-6f95-4d9e-a0f4-134e85611e9a""

@juanignaciosl
Copy link
Contributor Author

Next: permission error inserting in shared table through sql api:

{"error":["permission denied for sequence barrios_cartodb_id_seq"],"stack":"error: permission denied for sequence barrios_cartodb_id_seq\n    at Connection.parseE (/CartoDB-SQL-API/node_modules/cartodb-psql/node_modules/pg/lib/connection.js:553:11)\n    at Connection.parseMessage (/CartoDB-SQL-API/node_modules/cartodb-psql/node_modules/pg/lib/connection.js:382:17)\n    at null.<anonymous> (/CartoDB-SQL-API/node_modules/cartodb-psql/node_modules/pg/lib/connection.js:99:20)\n    at Socket.EventEmitter.emit (events.js:95:17)\n    at Socket.<anonymous> (_stream_readable.js:746:14)\n    at Socket.EventEmitter.emit (events.js:92:17)\n    at emitReadable_ (_stream_readable.js:408:10)\n    at emitReadable (_stream_readable.js:404:5)\n    at readableAddChunk (_stream_readable.js:165:9)\n    at Socket.Readable.push (_stream_readable.js:127:10)"}%

UPDATE: if you set an explicit value for cartodb_id it works. Sequence permission is a previous bug ans has been reported in CartoDB/CartoDB-SQL-API#230.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants