Segmentation fault during db:migrate

Added by John Griffin over 8 years ago

Hi,

I'm attempting to upgrade from redmine 0.9.3 to redmine 1.1.1 (yes, it's been a while). I'm running rails 2.3.5, rack 1.0.1 on ruby enterprise edition 1.8.7 (2011.03).

I'm currently trying to set-up redmine 1.1.1 alongside my old redmine installation, running under a different virtual host with a different host name and a separate database. After importing my old data to the new database, I attempted to run the database migration and encountered a segmentation fault. I also encountered this while running rake db:migrate with an empty database. I've copied below the full output from the migrate I attempted to run with the old data.

N.B.: I've been playing around before submitting this post: I also tried with enterprise edition 1.8.6, as well as with standard ruby 1.8.7. All encountered seg faults.

me@system:/var/www/redmine-1.1# rake db:migrate RAILS_ENV=production
(in /var/www/redmine-1.1)
ChangeUsersMailNotificationToString: migrating ==========================
-- rename_column(:users, :mail_notification, :mail_notification_bool)
> 0.0626s
-
add_column(:users, :mail_notification, :string, {:default=>"", :null=>false})
> 0.0072s
-
remove_column(:users, :mail_notification_bool)
-> 0.0087s
ChangeUsersMailNotificationToString: migrated (0.1000s) =================

UpdateMailNotificationValues: migrating =================================
UpdateMailNotificationValues: migrated (0.0000s) ======================== AddIssuesNestedSetsColumns: migrating ===================================
-- add_column(:issues, :parent_id, :integer, {:default=>nil})
> 0.3656s
-
add_column(:issues, :root_id, :integer, {:default=>nil})
> 0.3463s
-
add_column(:issues, :lft, :integer, {:default=>nil})
> 0.4881s
-
add_column(:issues, :rgt, :integer, {:default=>nil})
-> 0.4206s
AddIssuesNestedSetsColumns: migrated (1.8582s) ========================== AddIndexOnIssuesNestedSet: migrating ====================================
-- add_index(:issues, [:root_id, :lft, :rgt])
-> 0.4213s
AddIndexOnIssuesNestedSet: migrated (0.4214s) =========================== ChangeChangesPathLengthLimit: migrating =================================
-- change_column(:changes, :path, :text, {:default=>nil, :null=>true})
> 0.3385s
-
change_column(:changes, :path, :text, {:null=>false})
> 0.3600s
-
change_column(:changes, :from_path, :text)
-> 0.3468s
ChangeChangesPathLengthLimit: migrated (1.0457s) ======================== EnableCalendarAndGanttModulesWhereAppropriate: migrating ================
EnableCalendarAndGanttModulesWhereAppropriate: migrated (0.0286s) ======= AddUniqueIndexOnMembers: migrating ======================================
-- add_index(:members, [:user_id, :project_id], {:unique=>true})
-> 0.0077s
AddUniqueIndexOnMembers: migrated (0.0185s) ============================= AddCustomFieldsVisible: migrating =======================================
-- add_column(:custom_fields, :visible, :boolean, {:default=>true, :null=>false})
-> 0.0067s
AddCustomFieldsVisible: migrated (0.0071s) ============================== ChangeProjectsNameLimit: migrating ======================================
-- change_column(:projects, :name, :string, {:default=>"", :null=>false, :limit=>nil})
-> 0.0073s
ChangeProjectsNameLimit: migrated (0.0074s) ============================= ChangeProjectsIdentifierLimit: migrating ================================
-- change_column(:projects, :identifier, :string, {:limit=>nil})
-> 0.0074s
ChangeProjectsIdentifierLimit: migrated (0.0075s) =======================

/usr/bin/rake:19: [BUG] Segmentation fault
ruby 1.8.7 (2011-02-18 patchlevel 334) [i686-linux], MBARI 0x8770, Ruby Enterprise Edition 2011.03

Aborted

Replies (18)

RE: Segmentation fault during db:migrate - Added by Etienne Massip over 8 years ago

Could be a buggy db adapter ? what's your db config ?

RE: Segmentation fault during db:migrate - Added by John Griffin over 8 years ago

I've tried using both mysql (2.8.1) and mysql2 (0.2.6). I also tried uninstalling and re-installing the mysql gem. mysql2 was new to the system when I installed it this afternoon. I've copied database.yml as it currently is with the mysql2 adapter specified. I can verify that the dbs are the correct encoding. No issue with user/pass either.

As I mentioned before, I am setting up redmine-1.1.1 on an independent database from redmine-0.9.3, with the data copied over. In order to copy the data, I did:

mysqldump -u user -p redmine > redmine-dump.sql
mysql -u user -p devredmine < redmine-dump.sql

As I said, I have also tried running db:migrate on a bare database as though I were doing an initial install of redmine with no data, and that also produced a segfault.

following is database.yml...

  1. MySQL (default setup).

production:
adapter: mysql2
database: devredmine
host: localhost
username: redmine
password: **
encoding: utf8

development:
adapter: mysql2
database: devredmine_development
host: localhost
username: redmine
password: **
encoding: utf8

  1. Warning: The database defined as "test" will be erased and
  2. re-generated from your development database when you run "rake".
  3. Do not set this db to the same as development or production.
    test:
    adapter: mysql
    database: redmine_test
    host: localhost
    username: redmine
    password: **
    encoding: utf8

RE: Segmentation fault during db:migrate - Added by John Griffin over 8 years ago

Seems I forgot to set the pre tag .. here's a cleaner copy:


# MySQL (default setup).

production:
  adapter: mysql2
  database: devredmine
  host: localhost
  username: redmine
  password: 3rr0r10g*
  encoding: utf8

development:
  adapter: mysql2
  database: devredmine_development
  host: localhost
  username: redmine
  password: 3rr0r10g*
  encoding: utf8

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  adapter: mysql
  database: redmine_test
  host: localhost
  username: redmine
  password: 3rr0r10g* 
  encoding: utf8

RE: Segmentation fault during db:migrate - Added by Etienne Massip over 8 years ago

What's the rake ... --trace result ?

RE: Segmentation fault during db:migrate - Added by Etienne Massip over 8 years ago

If you're under windows there is a lead here

RE: Segmentation fault during db:migrate - Added by John Griffin over 8 years ago

Not on Windows. Debian 5.

me@system:/var/www/redmine-1.1$ RAILS_ENV=production rake db:migrate --trace
(in /var/www/redmine-1.1)
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:migrate
** Invoke db:schema:dump (first_time)
** Invoke environment 
** Execute db:schema:dump
/usr/bin/rake:19: [BUG] Segmentation fault
ruby 1.8.7 (2011-02-18 patchlevel 334) [i686-linux], MBARI 0x8770, Ruby Enterprise Edition 2011.03

Aborted

RE: Segmentation fault during db:migrate - Added by John Griffin over 8 years ago

If they're relevant, 2 pieces of information:

I have applied this hack to config/environment.rb: http://www.redmine.org/issues/7516

The version of RubyGems included with ruby-ee 1.8.7 is 1.5.2. I have heard about conflicts between rubygems >1.5.0 and rails 2.3.5, but I don't personally see how that's relevant here, especially since I've also tried with different versions of ruby-ee compiled. I have also tried rails 2.3.11.

RE: Segmentation fault during db:migrate - Added by Etienne Massip over 8 years ago

Could you try with a bare sqlite3 db ?

RE: Segmentation fault during db:migrate - Added by John Griffin over 8 years ago

Still segfaults. For posterity, I've included database.yml with relevant sqlite3 config info, as well as the output from db:migrate.

# database.yml
# SQLite3

production:
  adapter: sqlite3
  dbfile: db/redmine.db

development:
  adapter: sqlite3
  dbfile: db/redmine_development.db
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  adapter: mysql
  dbfile: db/redmine_test.db


<br>
me@system:/var/www/redmine-1.1# RAILS_ENV=production rake db:migrate --trace
(in /var/www/redmine-1.1)
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:migrate
==  Setup: migrating ==========================================================
-- create_table("attachments", {:force=>true})
   -> 0.0065s
-- create_table("auth_sources", {:force=>true})
   -> 0.0014s
-- create_table("custom_fields", {:force=>true})
   -> 0.0014s
-- create_table("custom_fields_projects", {:force=>true, :id=>false})
   -> 0.0007s
-- create_table("custom_fields_trackers", {:force=>true, :id=>false})
   -> 0.0009s
-- create_table("custom_values", {:force=>true})
   -> 0.0011s
-- create_table("documents", {:force=>true})
   -> 0.0013s
-- add_index("documents", ["project_id"], {:name=>"documents_project_id"})
   -> 0.0003s
-- create_table("enumerations", {:force=>true})
   -> 0.0009s
-- create_table("issue_categories", {:force=>true})
   -> 0.0012s
-- add_index("issue_categories", ["project_id"], {:name=>"issue_categories_project_id"})
   -> 0.0003s
-- create_table("issue_histories", {:force=>true})
   -> 0.0013s
-- add_index("issue_histories", ["issue_id"], {:name=>"issue_histories_issue_id"})
   -> 0.0003s
-- create_table("issue_statuses", {:force=>true})
   -> 0.0014s
-- create_table("issues", {:force=>true})
   -> 0.0023s
-- add_index("issues", ["project_id"], {:name=>"issues_project_id"})
   -> 0.0003s
-- create_table("members", {:force=>true})
   -> 0.0015s
-- create_table("news", {:force=>true})
   -> 0.0015s
-- add_index("news", ["project_id"], {:name=>"news_project_id"})
   -> 0.0002s
-- create_table("permissions", {:force=>true})
   -> 0.0017s
-- create_table("permissions_roles", {:force=>true, :id=>false})
   -> 0.0013s
-- add_index("permissions_roles", ["role_id"], {:name=>"permissions_roles_role_id"})
   -> 0.0002s
-- create_table("projects", {:force=>true})
   -> 0.0019s
-- create_table("roles", {:force=>true})
   -> 0.0012s
-- create_table("tokens", {:force=>true})
   -> 0.0016s
-- create_table("trackers", {:force=>true})
   -> 0.0015s
-- create_table("users", {:force=>true})
   -> 0.0023s
-- create_table("versions", {:force=>true})
   -> 0.0019s
-- add_index("versions", ["project_id"], {:name=>"versions_project_id"})
   -> 0.0003s
-- create_table("workflows", {:force=>true})
   -> 0.0018s
==  Setup: migrated (0.0841s) =================================================

==  IssueMove: migrating ======================================================
==  IssueMove: migrated (0.0030s) =============================================

==  IssueAddNote: migrating ===================================================
==  IssueAddNote: migrated (0.0030s) ==========================================

==  ExportPdf: migrating ======================================================
==  ExportPdf: migrated (0.0038s) =============================================

==  IssueStartDate: migrating =================================================
-- add_column(:issues, :start_date, :date)
   -> 0.0005s
-- add_column(:issues, :done_ratio, :integer, {:default=>0, :null=>false})
   -> 0.0005s
==  IssueStartDate: migrated (0.0015s) ========================================

==  CalendarAndActivity: migrating ============================================
==  CalendarAndActivity: migrated (0.0046s) ===================================

==  CreateJournals: migrating =================================================
-- create_table(:journals, {:force=>true})
   -> 0.0020s
-- create_table(:journal_details, {:force=>true})
   -> 0.0020s
-- add_index("journals", ["journalized_id", "journalized_type"], {:name=>"journals_journalized_id"})
   -> 0.0004s
-- add_index("journal_details", ["journal_id"], {:name=>"journal_details_journal_id"})
   -> 0.0002s
-- drop_table(:issue_histories)
   -> 0.0004s
==  CreateJournals: migrated (0.0093s) ========================================

==  CreateUserPreferences: migrating ==========================================
-- create_table(:user_preferences)
   -> 0.0006s
==  CreateUserPreferences: migrated (0.0008s) =================================

==  AddHideMailPref: migrating ================================================
-- add_column(:user_preferences, :hide_mail, :boolean, {:default=>false})
   -> 0.0004s
==  AddHideMailPref: migrated (0.0006s) =======================================

==  CreateComments: migrating =================================================
-- create_table(:comments)
   -> 0.0009s
==  CreateComments: migrated (0.0011s) ========================================

==  AddNewsCommentsCount: migrating ===========================================
-- add_column(:news, :comments_count, :integer, {:default=>0, :null=>false})
   -> 0.0004s
==  AddNewsCommentsCount: migrated (0.0006s) ==================================

==  AddCommentsPermissions: migrating =========================================
==  AddCommentsPermissions: migrated (0.0039s) ================================

==  CreateQueries: migrating ==================================================
-- create_table(:queries, {:force=>true})
   -> 0.0021s
==  CreateQueries: migrated (0.0023s) =========================================

==  AddQueriesPermissions: migrating ==========================================
==  AddQueriesPermissions: migrated (0.0030s) =================================

==  CreateRepositories: migrating =============================================
-- create_table(:repositories, {:force=>true})
   -> 0.0019s
==  CreateRepositories: migrated (0.0021s) ====================================

==  AddRepositoriesPermissions: migrating =====================================
==  AddRepositoriesPermissions: migrated (0.0071s) ============================

==  CreateSettings: migrating =================================================
-- create_table(:settings, {:force=>true})
   -> 0.0022s
==  CreateSettings: migrated (0.0024s) ========================================

==  SetDocAndFilesNotifications: migrating ====================================
==  SetDocAndFilesNotifications: migrated (0.0069s) ===========================

==  AddIssueStatusPosition: migrating =========================================
-- add_column(:issue_statuses, :position, :integer, {:default=>1})
   -> 0.0005s
==  AddIssueStatusPosition: migrated (0.0009s) ================================

==  AddRolePosition: migrating ================================================
-- add_column(:roles, :position, :integer, {:default=>1})
   -> 0.0004s
==  AddRolePosition: migrated (0.0618s) =======================================

==  AddTrackerPosition: migrating =============================================
-- add_column(:trackers, :position, :integer, {:default=>1})
   -> 0.0006s
==  AddTrackerPosition: migrated (0.0010s) ====================================

==  SerializePossiblesValues: migrating =======================================
==  SerializePossiblesValues: migrated (0.0004s) ==============================

==  AddTrackerIsInRoadmap: migrating ==========================================
-- add_column(:trackers, :is_in_roadmap, :boolean, {:default=>true, :null=>false})
   -> 0.0006s
==  AddTrackerIsInRoadmap: migrated (0.0008s) =================================

==  AddRoadmapPermission: migrating ===========================================
==  AddRoadmapPermission: migrated (0.0031s) ==================================

==  AddSearchPermission: migrating ============================================
==  AddSearchPermission: migrated (0.0032s) ===================================

==  AddRepositoryLoginAndPassword: migrating ==================================
-- add_column(:repositories, :login, :string, {:default=>"", :limit=>60})
   -> 0.0005s
-- add_column(:repositories, :password, :string, {:default=>"", :limit=>60})
   -> 0.0003s
==  AddRepositoryLoginAndPassword: migrated (0.0013s) =========================

==  CreateWikis: migrating ====================================================
-- create_table(:wikis)
   -> 0.0007s
-- add_index(:wikis, :project_id, {:name=>:wikis_project_id})
   -> 0.0003s
==  CreateWikis: migrated (0.0013s) ===========================================

==  CreateWikiPages: migrating ================================================
-- create_table(:wiki_pages)
   -> 0.0007s
-- add_index(:wiki_pages, [:wiki_id, :title], {:name=>:wiki_pages_wiki_id_title})
   -> 0.0002s
==  CreateWikiPages: migrated (0.0013s) =======================================

==  CreateWikiContents: migrating =============================================
-- create_table(:wiki_contents)
   -> 0.0010s
-- add_index(:wiki_contents, :page_id, {:name=>:wiki_contents_page_id})
   -> 0.0002s
-- create_table(:wiki_content_versions)
   -> 0.0010s
-- add_index(:wiki_content_versions, :wiki_content_id, {:name=>:wiki_content_versions_wcid})
   -> 0.0002s
==  CreateWikiContents: migrated (0.0033s) ====================================

==  AddProjectsFeedsPermissions: migrating ====================================
==  AddProjectsFeedsPermissions: migrated (0.0032s) ===========================

==  AddRepositoryRootUrl: migrating ===========================================
-- add_column(:repositories, :root_url, :string, {:default=>"", :limit=>255})
   -> 0.0006s
==  AddRepositoryRootUrl: migrated (0.0007s) ==================================

==  CreateTimeEntries: migrating ==============================================
-- create_table(:time_entries)
   -> 0.0015s
-- add_index(:time_entries, [:project_id], {:name=>:time_entries_project_id})
   -> 0.0002s
-- add_index(:time_entries, [:issue_id], {:name=>:time_entries_issue_id})
   -> 0.0003s
==  CreateTimeEntries: migrated (0.0027s) =====================================

==  AddTimelogPermissions: migrating ==========================================
==  AddTimelogPermissions: migrated (0.0029s) =================================

==  CreateChangesets: migrating ===============================================
-- create_table(:changesets)
   -> 0.0010s
-- add_index(:changesets, [:repository_id, :revision], {:unique=>true, :name=>:changesets_repos_rev})
   -> 0.0003s
==  CreateChangesets: migrated (0.0017s) ======================================

==  CreateChanges: migrating ==================================================
-- create_table(:changes)
   -> 0.0009s
-- add_index(:changes, [:changeset_id], {:name=>:changesets_changeset_id})
   -> 0.0002s
==  CreateChanges: migrated (0.0014s) =========================================

==  AddChangesetCommitDate: migrating =========================================
-- add_column(:changesets, :commit_date, :date)
   -> 0.0005s
==  AddChangesetCommitDate: migrated (0.0009s) ================================

==  AddProjectIdentifier: migrating ===========================================
-- add_column(:projects, :identifier, :string, {:limit=>20})
   -> 0.0005s
==  AddProjectIdentifier: migrated (0.0006s) ==================================

==  AddCustomFieldIsFilter: migrating =========================================
-- add_column(:custom_fields, :is_filter, :boolean, {:default=>false, :null=>false})
   -> 0.0005s
==  AddCustomFieldIsFilter: migrated (0.0007s) ================================

==  CreateWatchers: migrating =================================================
-- create_table(:watchers)
   -> 0.0009s
==  CreateWatchers: migrated (0.0010s) ========================================

==  CreateChangesetsIssues: migrating =========================================
-- create_table(:changesets_issues, {:id=>false})
   -> 0.0007s
-- add_index(:changesets_issues, [:changeset_id, :issue_id], {:unique=>true, :name=>:changesets_issues_ids})
   -> 0.0003s
==  CreateChangesetsIssues: migrated (0.0013s) ================================

==  RenameCommentToComments: migrating ========================================
==  RenameCommentToComments: migrated (0.0093s) ===============================

==  CreateIssueRelations: migrating ===========================================
-- create_table(:issue_relations)
   -> 0.0009s
==  CreateIssueRelations: migrated (0.0011s) ==================================

==  AddRelationsPermissions: migrating ========================================
==  AddRelationsPermissions: migrated (0.0038s) ===============================

==  SetLanguageLengthToFive: migrating ========================================
-- change_column(:users, :language, :string, {:default=>"", :limit=>5})
   -> 0.0216s
==  SetLanguageLengthToFive: migrated (0.0218s) ===============================

==  CreateBoards: migrating ===================================================
-- create_table(:boards)
   -> 0.0012s
-- add_index(:boards, [:project_id], {:name=>:boards_project_id})
   -> 0.0003s
==  CreateBoards: migrated (0.0018s) ==========================================

==  CreateMessages: migrating =================================================
-- create_table(:messages)
   -> 0.0014s
-- add_index(:messages, [:board_id], {:name=>:messages_board_id})
   -> 0.0003s
-- add_index(:messages, [:parent_id], {:name=>:messages_parent_id})
   -> 0.0004s
==  CreateMessages: migrated (0.0026s) ========================================

==  AddBoardsPermissions: migrating ===========================================
==  AddBoardsPermissions: migrated (0.0048s) ==================================

==  AllowNullVersionEffectiveDate: migrating ==================================
-- change_column(:versions, :effective_date, :date, {:default=>nil, :null=>true})
   -> 0.0144s
==  AllowNullVersionEffectiveDate: migrated (0.0146s) =========================

==  AddWikiDestroyPagePermission: migrating ===================================
==  AddWikiDestroyPagePermission: migrated (0.0030s) ==========================

==  AddWikiAttachmentsPermissions: migrating ==================================
==  AddWikiAttachmentsPermissions: migrated (0.0038s) =========================

==  AddProjectStatus: migrating ===============================================
-- add_column(:projects, :status, :integer, {:default=>1, :null=>false})
   -> 0.0005s
==  AddProjectStatus: migrated (0.0007s) ======================================

==  AddChangesRevision: migrating =============================================
-- add_column(:changes, :revision, :string)
   -> 0.0005s
==  AddChangesRevision: migrated (0.0006s) ====================================

==  AddChangesBranch: migrating ===============================================
-- add_column(:changes, :branch, :string)
   -> 0.0005s
==  AddChangesBranch: migrated (0.0006s) ======================================

==  AddChangesetsScmid: migrating =============================================
-- add_column(:changesets, :scmid, :string)
   -> 0.0005s
==  AddChangesetsScmid: migrated (0.0006s) ====================================

==  AddRepositoriesType: migrating ============================================
-- add_column(:repositories, :type, :string)
   -> 0.0006s
==  AddRepositoriesType: migrated (0.0010s) ===================================

==  AddRepositoriesChangesPermission: migrating ===============================
==  AddRepositoriesChangesPermission: migrated (0.0030s) ======================

==  AddVersionsWikiPageTitle: migrating =======================================
-- add_column(:versions, :wiki_page_title, :string)
   -> 0.0005s
==  AddVersionsWikiPageTitle: migrated (0.0007s) ==============================

==  AddIssueCategoriesAssignedToId: migrating =================================
-- add_column(:issue_categories, :assigned_to_id, :integer)
   -> 0.0005s
==  AddIssueCategoriesAssignedToId: migrated (0.0006s) ========================

==  AddRolesAssignable: migrating =============================================
-- add_column(:roles, :assignable, :boolean, {:default=>true})
   -> 0.0004s
==  AddRolesAssignable: migrated (0.0006s) ====================================

==  ChangeChangesetsCommitterLimit: migrating =================================
-- change_column(:changesets, :committer, :string, {:limit=>nil})
   -> 0.0160s
==  ChangeChangesetsCommitterLimit: migrated (0.0162s) ========================

==  AddRolesBuiltin: migrating ================================================
-- add_column(:roles, :builtin, :integer, {:default=>0, :null=>false})
   -> 0.0005s
==  AddRolesBuiltin: migrated (0.0007s) =======================================

==  InsertBuiltinRoles: migrating =============================================
==  InsertBuiltinRoles: migrated (0.0055s) ====================================

==  AddRolesPermissions: migrating ============================================
-- add_column(:roles, :permissions, :text)
   -> 0.0004s
==  AddRolesPermissions: migrated (0.0006s) ===================================

==  DropPermissions: migrating ================================================
-- drop_table(:permissions)
   -> 0.0004s
-- drop_table(:permissions_roles)
   -> 0.0003s
==  DropPermissions: migrated (0.0010s) =======================================

==  AddSettingsUpdatedOn: migrating ===========================================
-- add_column(:settings, :updated_on, :timestamp)
   -> 0.0004s
==  AddSettingsUpdatedOn: migrated (0.0047s) ==================================

==  AddCustomValueCustomizedIndex: migrating ==================================
-- add_index(:custom_values, [:customized_type, :customized_id], {:name=>:custom_values_customized})
   -> 0.0004s
==  AddCustomValueCustomizedIndex: migrated (0.0006s) =========================

==  CreateWikiRedirects: migrating ============================================
-- create_table(:wiki_redirects)
   -> 0.0010s
-- add_index(:wiki_redirects, [:wiki_id, :title], {:name=>:wiki_redirects_wiki_id_title})
   -> 0.0003s
==  CreateWikiRedirects: migrated (0.0016s) ===================================

==  CreateEnabledModules: migrating ===========================================
-- create_table(:enabled_modules)
   -> 0.0615s
-- add_index(:enabled_modules, [:project_id], {:name=>:enabled_modules_project_id})
   -> 0.0003s
==  CreateEnabledModules: migrated (0.0625s) ==================================

==  AddIssuesEstimatedHours: migrating ========================================
-- add_column(:issues, :estimated_hours, :float)
   -> 0.0006s
==  AddIssuesEstimatedHours: migrated (0.0008s) ===============================

==  ChangeAttachmentsContentTypeLimit: migrating ==============================
-- change_column(:attachments, :content_type, :string, {:limit=>nil})
   -> 0.0175s
==  ChangeAttachmentsContentTypeLimit: migrated (0.0177s) =====================

==  AddQueriesColumnNames: migrating ==========================================
-- add_column(:queries, :column_names, :text)
   -> 0.0005s
==  AddQueriesColumnNames: migrated (0.0007s) =================================

==  AddEnumerationsPosition: migrating ========================================
-- add_column(:enumerations, :position, :integer, {:default=>1})
   -> 0.0005s
==  AddEnumerationsPosition: migrated (0.0016s) ===============================

==  AddEnumerationsIsDefault: migrating =======================================
-- add_column(:enumerations, :is_default, :boolean, {:default=>false, :null=>false})
   -> 0.0006s
==  AddEnumerationsIsDefault: migrated (0.0008s) ==============================

==  AddAuthSourcesTls: migrating ==============================================
-- add_column(:auth_sources, :tls, :boolean, {:default=>false, :null=>false})
   -> 0.0005s
==  AddAuthSourcesTls: migrated (0.0007s) =====================================

==  AddMembersMailNotification: migrating =====================================
-- add_column(:members, :mail_notification, :boolean, {:default=>false, :null=>false})
   -> 0.0005s
==  AddMembersMailNotification: migrated (0.0007s) ============================

==  AllowNullPosition: migrating ==============================================
-- change_column(:issue_statuses, :position, :integer, {:default=>1, :null=>true})
   -> 0.0113s
-- change_column(:roles, :position, :integer, {:default=>1, :null=>true})
   -> 0.0115s
-- change_column(:trackers, :position, :integer, {:default=>1, :null=>true})
   -> 0.0094s
-- change_column(:boards, :position, :integer, {:default=>1, :null=>true})
   -> 0.0156s
-- change_column(:enumerations, :position, :integer, {:default=>1, :null=>true})
   -> 0.0093s
==  AllowNullPosition: migrated (0.0581s) =====================================

==  RemoveIssueStatusesHtmlColor: migrating ===================================
-- remove_column(:issue_statuses, :html_color)
   -> 0.0120s
==  RemoveIssueStatusesHtmlColor: migrated (0.0122s) ==========================

==  AddCustomFieldsPosition: migrating ========================================
-- add_column(:custom_fields, :position, :integer, {:default=>1})
   -> 0.0005s
==  AddCustomFieldsPosition: migrated (0.0010s) ===============================

==  AddUserPreferencesTimeZone: migrating =====================================
-- add_column(:user_preferences, :time_zone, :string)
   -> 0.0005s
==  AddUserPreferencesTimeZone: migrated (0.0007s) ============================

==  AddUsersType: migrating ===================================================
-- add_column(:users, :type, :string)
   -> 0.0006s
==  AddUsersType: migrated (0.0028s) ==========================================

==  CreateProjectsTrackers: migrating =========================================
-- create_table(:projects_trackers, {:id=>false})
   -> 0.0006s
-- add_index(:projects_trackers, :project_id, {:name=>:projects_trackers_project_id})
   -> 0.0003s
==  CreateProjectsTrackers: migrated (0.0016s) ================================

==  AddMessagesLocked: migrating ==============================================
-- add_column(:messages, :locked, :boolean, {:default=>false})
   -> 0.0006s
==  AddMessagesLocked: migrated (0.0008s) =====================================

==  AddMessagesSticky: migrating ==============================================
-- add_column(:messages, :sticky, :integer, {:default=>0})
   -> 0.0005s
==  AddMessagesSticky: migrated (0.0008s) =====================================

==  ChangeAuthSourcesAccountLimit: migrating ==================================
-- change_column(:auth_sources, :account, :string, {:limit=>nil})
   -> 0.0209s
==  ChangeAuthSourcesAccountLimit: migrated (0.0212s) =========================

==  AddRoleTrackerOldStatusIndexToWorkflows: migrating ========================
-- add_index(:workflows, [:role_id, :tracker_id, :old_status_id], {:name=>:wkfs_role_tracker_old_status})
   -> 0.0004s
==  AddRoleTrackerOldStatusIndexToWorkflows: migrated (0.0006s) ===============

==  AddCustomFieldsSearchable: migrating ======================================
-- add_column(:custom_fields, :searchable, :boolean, {:default=>false})
   -> 0.0006s
==  AddCustomFieldsSearchable: migrated (0.0008s) =============================

==  ChangeProjectsDescriptionToText: migrating ================================
-- change_column(:projects, :description, :text, {:default=>nil, :null=>true})
   -> 0.0167s
==  ChangeProjectsDescriptionToText: migrated (0.0169s) =======================

==  AddCustomFieldsDefaultValue: migrating ====================================
-- add_column(:custom_fields, :default_value, :text)
   -> 0.0006s
==  AddCustomFieldsDefaultValue: migrated (0.0007s) ===========================

==  AddAttachmentsDescription: migrating ======================================
-- add_column(:attachments, :description, :string)
   -> 0.0005s
==  AddAttachmentsDescription: migrated (0.0007s) =============================

==  ChangeVersionsNameLimit: migrating ========================================
-- change_column(:versions, :name, :string, {:limit=>nil})
   -> 0.0164s
==  ChangeVersionsNameLimit: migrated (0.0166s) ===============================

==  ChangeChangesetsRevisionToString: migrating ===============================
-- change_column(:changesets, :revision, :string, {:null=>false})
   -> 0.0776s
==  ChangeChangesetsRevisionToString: migrated (0.0779s) ======================

==  ChangeChangesFromRevisionToString: migrating ==============================
-- change_column(:changes, :from_revision, :string)
   -> 0.0162s
==  ChangeChangesFromRevisionToString: migrated (0.0165s) =====================

==  AddWikiPagesProtected: migrating ==========================================
-- add_column(:wiki_pages, :protected, :boolean, {:default=>false, :null=>false})
   -> 0.0005s
==  AddWikiPagesProtected: migrated (0.0007s) =================================

==  ChangeProjectsHomepageLimit: migrating ====================================
-- change_column(:projects, :homepage, :string, {:default=>"", :limit=>nil})
   -> 0.0173s
==  ChangeProjectsHomepageLimit: migrated (0.0175s) ===========================

==  AddWikiPagesParentId: migrating ===========================================
-- add_column(:wiki_pages, :parent_id, :integer, {:default=>nil})
   -> 0.0005s
==  AddWikiPagesParentId: migrated (0.0007s) ==================================

==  AddCommitAccessPermission: migrating ======================================
==  AddCommitAccessPermission: migrated (0.0006s) =============================

==  AddViewWikiEditsPermission: migrating =====================================
==  AddViewWikiEditsPermission: migrated (0.0005s) ============================

==  SetTopicAuthorsAsWatchers: migrating ======================================
==  SetTopicAuthorsAsWatchers: migrated (0.0021s) =============================

==  AddDeleteWikiPagesAttachmentsPermission: migrating ========================
==  AddDeleteWikiPagesAttachmentsPermission: migrated (0.0006s) ===============

==  AddChangesetsUserId: migrating ============================================
-- add_column(:changesets, :user_id, :integer, {:default=>nil})
   -> 0.0006s
==  AddChangesetsUserId: migrated (0.0008s) ===================================

==  PopulateChangesetsUserId: migrating =======================================
==  PopulateChangesetsUserId: migrated (0.0002s) ==============================

==  AddCustomFieldsEditable: migrating ========================================
-- add_column(:custom_fields, :editable, :boolean, {:default=>true})
   -> 0.0005s
==  AddCustomFieldsEditable: migrated (0.0007s) ===============================

==  SetCustomFieldsEditable: migrating ========================================
==  SetCustomFieldsEditable: migrated (0.0030s) ===============================

==  AddProjectsLftAndRgt: migrating ===========================================
-- add_column(:projects, :lft, :integer)
   -> 0.0005s
-- add_column(:projects, :rgt, :integer)
   -> 0.0004s
==  AddProjectsLftAndRgt: migrated (0.0012s) ==================================

==  BuildProjectsTree: migrating ==============================================
==  BuildProjectsTree: migrated (0.0033s) =====================================

==  RemoveProjectsProjectsCount: migrating ====================================
-- remove_column(:projects, :projects_count)
   -> 0.0200s
==  RemoveProjectsProjectsCount: migrated (0.0203s) ===========================

==  AddOpenIdAuthenticationTables: migrating ==================================
-- create_table(:open_id_authentication_associations, {:force=>true})
   -> 0.0029s
-- create_table(:open_id_authentication_nonces, {:force=>true})
   -> 0.0025s
==  AddOpenIdAuthenticationTables: migrated (0.0058s) =========================

==  AddIdentityUrlToUsers: migrating ==========================================
-- add_column(:users, :identity_url, :string)
   -> 0.0005s
==  AddIdentityUrlToUsers: migrated (0.0007s) =================================

==  AddWatchersUserIdTypeIndex: migrating =====================================
-- add_index(:watchers, [:user_id, :watchable_type], {:name=>:watchers_user_id_type})
   -> 0.0003s
==  AddWatchersUserIdTypeIndex: migrated (0.0005s) ============================

==  AddQueriesSortCriteria: migrating =========================================
-- add_column(:queries, :sort_criteria, :text)
   -> 0.0005s
==  AddQueriesSortCriteria: migrated (0.0006s) ================================

==  AddProjectsTrackersUniqueIndex: migrating =================================
-- add_index(:projects_trackers, [:project_id, :tracker_id], {:unique=>true, :name=>:projects_trackers_unique})
   -> 0.0004s
==  AddProjectsTrackersUniqueIndex: migrated (0.0009s) ========================

==  ExtendSettingsName: migrating =============================================
-- change_column(:settings, :name, :string, {:default=>"", :null=>false, :limit=>255})
   -> 0.0082s
==  ExtendSettingsName: migrated (0.0084s) ====================================

==  AddTypeToEnumerations: migrating ==========================================
-- add_column(:enumerations, :type, :string)
   -> 0.0005s
==  AddTypeToEnumerations: migrated (0.0007s) =================================

==  UpdateEnumerationsToSti: migrating ========================================
==  UpdateEnumerationsToSti: migrated (0.0007s) ===============================

==  AddActiveFieldToEnumerations: migrating ===================================
-- add_column(:enumerations, :active, :boolean, {:default=>true, :null=>false})
   -> 0.0005s
==  AddActiveFieldToEnumerations: migrated (0.0007s) ==========================

==  AddProjectToEnumerations: migrating =======================================
-- add_column(:enumerations, :project_id, :integer, {:default=>nil, :null=>true})
   -> 0.0006s
-- add_index(:enumerations, :project_id)
   -> 0.0003s
==  AddProjectToEnumerations: migrated (0.0012s) ==============================

==  AddParentIdToEnumerations: migrating ======================================
-- add_column(:enumerations, :parent_id, :integer, {:default=>nil, :null=>true})
   -> 0.0005s
==  AddParentIdToEnumerations: migrated (0.0006s) =============================

==  AddQueriesGroupBy: migrating ==============================================
-- add_column(:queries, :group_by, :string)
   -> 0.0006s
==  AddQueriesGroupBy: migrated (0.0008s) =====================================

==  CreateMemberRoles: migrating ==============================================
-- create_table(:member_roles)
   -> 0.0007s
==  CreateMemberRoles: migrated (0.0009s) =====================================

==  PopulateMemberRoles: migrating ============================================
==  PopulateMemberRoles: migrated (0.0037s) ===================================

==  DropMembersRoleId: migrating ==============================================
-- remove_column(:members, :role_id)
   -> 0.0117s
==  DropMembersRoleId: migrated (0.0119s) =====================================

==  FixMessagesStickyNull: migrating ==========================================
==  FixMessagesStickyNull: migrated (0.0003s) =================================

==  PopulateUsersType: migrating ==============================================
==  PopulateUsersType: migrated (0.0003s) =====================================

==  CreateGroupsUsers: migrating ==============================================
-- create_table(:groups_users, {:id=>false})
   -> 0.0006s
-- add_index(:groups_users, [:group_id, :user_id], {:unique=>true, :name=>:groups_users_ids})
   -> 0.0003s
==  CreateGroupsUsers: migrated (0.0012s) =====================================

==  AddMemberRolesInheritedFrom: migrating ====================================
-- add_column(:member_roles, :inherited_from, :integer)
   -> 0.0005s
==  AddMemberRolesInheritedFrom: migrated (0.0007s) ===========================

==  FixUsersCustomValues: migrating ===========================================
==  FixUsersCustomValues: migrated (0.0017s) ==================================

==  AddMissingIndexesToWorkflows: migrating ===================================
-- add_index(:workflows, :old_status_id)
   -> 0.0004s
-- add_index(:workflows, :role_id)
   -> 0.0003s
-- add_index(:workflows, :new_status_id)
   -> 0.0004s
==  AddMissingIndexesToWorkflows: migrated (0.0017s) ==========================

==  AddMissingIndexesToCustomFieldsProjects: migrating ========================
-- add_index(:custom_fields_projects, [:custom_field_id, :project_id])
   -> 0.0004s
==  AddMissingIndexesToCustomFieldsProjects: migrated (0.0007s) ===============

==  AddMissingIndexesToMessages: migrating ====================================
-- add_index(:messages, :last_reply_id)
   -> 0.0003s
-- add_index(:messages, :author_id)
   -> 0.0003s
==  AddMissingIndexesToMessages: migrated (0.0009s) ===========================

==  AddMissingIndexesToRepositories: migrating ================================
-- add_index(:repositories, :project_id)
   -> 0.0004s
==  AddMissingIndexesToRepositories: migrated (0.0006s) =======================

==  AddMissingIndexesToComments: migrating ====================================
-- add_index(:comments, [:commented_id, :commented_type])
   -> 0.0004s
-- add_index(:comments, :author_id)
   -> 0.0003s
==  AddMissingIndexesToComments: migrated (0.0010s) ===========================

==  AddMissingIndexesToEnumerations: migrating ================================
-- add_index(:enumerations, [:id, :type])
   -> 0.0004s
==  AddMissingIndexesToEnumerations: migrated (0.0005s) =======================

==  AddMissingIndexesToWikiPages: migrating ===================================
-- add_index(:wiki_pages, :wiki_id)
   -> 0.0004s
-- add_index(:wiki_pages, :parent_id)
   -> 0.0003s
==  AddMissingIndexesToWikiPages: migrated (0.0010s) ==========================

==  AddMissingIndexesToWatchers: migrating ====================================
-- add_index(:watchers, :user_id)
   -> 0.0004s
-- add_index(:watchers, [:watchable_id, :watchable_type])
   -> 0.0003s
==  AddMissingIndexesToWatchers: migrated (0.0010s) ===========================

==  AddMissingIndexesToAuthSources: migrating =================================
-- add_index(:auth_sources, [:id, :type])
   -> 0.0004s
==  AddMissingIndexesToAuthSources: migrated (0.0006s) ========================

==  AddMissingIndexesToDocuments: migrating ===================================
-- add_index(:documents, :category_id)
   -> 0.0005s
==  AddMissingIndexesToDocuments: migrated (0.0007s) ==========================

==  AddMissingIndexesToTokens: migrating ======================================
-- add_index(:tokens, :user_id)
   -> 0.0004s
==  AddMissingIndexesToTokens: migrated (0.0005s) =============================

==  AddMissingIndexesToChangesets: migrating ==================================
-- add_index(:changesets, :user_id)
   -> 0.0003s
-- add_index(:changesets, :repository_id)
   -> 0.0003s
==  AddMissingIndexesToChangesets: migrated (0.0009s) =========================

==  AddMissingIndexesToIssueCategories: migrating =============================
-- add_index(:issue_categories, :assigned_to_id)
   -> 0.0004s
==  AddMissingIndexesToIssueCategories: migrated (0.0005s) ====================

==  AddMissingIndexesToMemberRoles: migrating =================================
-- add_index(:member_roles, :member_id)
   -> 0.0005s
-- add_index(:member_roles, :role_id)
   -> 0.0002s
==  AddMissingIndexesToMemberRoles: migrated (0.0011s) ========================

==  AddMissingIndexesToBoards: migrating ======================================
-- add_index(:boards, :last_message_id)
   -> 0.0004s
==  AddMissingIndexesToBoards: migrated (0.0006s) =============================

==  AddMissingIndexesToUserPreferences: migrating =============================
-- add_index(:user_preferences, :user_id)
   -> 0.0004s
==  AddMissingIndexesToUserPreferences: migrated (0.0005s) ====================

==  AddMissingIndexesToIssues: migrating ======================================
-- add_index(:issues, :status_id)
   -> 0.0004s
-- add_index(:issues, :category_id)
   -> 0.0003s
-- add_index(:issues, :assigned_to_id)
   -> 0.0003s
-- add_index(:issues, :fixed_version_id)
   -> 0.0003s
-- add_index(:issues, :tracker_id)
   -> 0.0003s
-- add_index(:issues, :priority_id)
   -> 0.0003s
-- add_index(:issues, :author_id)
   -> 0.0004s
==  AddMissingIndexesToIssues: migrated (0.0033s) =============================

==  AddMissingIndexesToMembers: migrating =====================================
-- add_index(:members, :user_id)
   -> 0.0003s
-- add_index(:members, :project_id)
   -> 0.0002s
==  AddMissingIndexesToMembers: migrated (0.0007s) ============================

==  AddMissingIndexesToCustomFields: migrating ================================
-- add_index(:custom_fields, [:id, :type])
   -> 0.0004s
==  AddMissingIndexesToCustomFields: migrated (0.0004s) =======================

==  AddMissingIndexesToQueries: migrating =====================================
-- add_index(:queries, :project_id)
   -> 0.0004s
-- add_index(:queries, :user_id)
   -> 0.0589s
==  AddMissingIndexesToQueries: migrated (0.0596s) ============================

==  AddMissingIndexesToTimeEntries: migrating =================================
-- add_index(:time_entries, :activity_id)
   -> 0.0004s
-- add_index(:time_entries, :user_id)
   -> 0.0003s
==  AddMissingIndexesToTimeEntries: migrated (0.0010s) ========================

==  AddMissingIndexesToNews: migrating ========================================
-- add_index(:news, :author_id)
   -> 0.0004s
==  AddMissingIndexesToNews: migrated (0.0005s) ===============================

==  AddMissingIndexesToUsers: migrating =======================================
-- add_index(:users, [:id, :type])
   -> 0.0004s
-- add_index(:users, :auth_source_id)
   -> 0.0003s
==  AddMissingIndexesToUsers: migrated (0.0009s) ==============================

==  AddMissingIndexesToAttachments: migrating =================================
-- add_index(:attachments, [:container_id, :container_type])
   -> 0.0004s
-- add_index(:attachments, :author_id)
   -> 0.0003s
==  AddMissingIndexesToAttachments: migrated (0.0011s) ========================

==  AddMissingIndexesToWikiContents: migrating ================================
-- add_index(:wiki_contents, :author_id)
   -> 0.0005s
==  AddMissingIndexesToWikiContents: migrated (0.0007s) =======================

==  AddMissingIndexesToCustomValues: migrating ================================
-- add_index(:custom_values, :custom_field_id)
   -> 0.0004s
==  AddMissingIndexesToCustomValues: migrated (0.0006s) =======================

==  AddMissingIndexesToJournals: migrating ====================================
-- add_index(:journals, :user_id)
   -> 0.0004s
-- add_index(:journals, :journalized_id)
   -> 0.0003s
==  AddMissingIndexesToJournals: migrated (0.0009s) ===========================

==  AddMissingIndexesToIssueRelations: migrating ==============================
-- add_index(:issue_relations, :issue_from_id)
   -> 0.0004s
-- add_index(:issue_relations, :issue_to_id)
   -> 0.0003s
==  AddMissingIndexesToIssueRelations: migrated (0.0010s) =====================

==  AddMissingIndexesToWikiRedirects: migrating ===============================
-- add_index(:wiki_redirects, :wiki_id)
   -> 0.0004s
==  AddMissingIndexesToWikiRedirects: migrated (0.0005s) ======================

==  AddMissingIndexesToCustomFieldsTrackers: migrating ========================
-- add_index(:custom_fields_trackers, [:custom_field_id, :tracker_id])
   -> 0.0005s
==  AddMissingIndexesToCustomFieldsTrackers: migrated (0.0006s) ===============

==  AddActivityIndexes: migrating =============================================
-- add_index(:journals, :created_on)
   -> 0.0004s
-- add_index(:changesets, :committed_on)
   -> 0.0003s
-- add_index(:wiki_content_versions, :updated_on)
   -> 0.0003s
-- add_index(:messages, :created_on)
   -> 0.0005s
-- add_index(:issues, :created_on)
   -> 0.0003s
-- add_index(:news, :created_on)
   -> 0.0004s
-- add_index(:attachments, :created_on)
   -> 0.0003s
-- add_index(:documents, :created_on)
   -> 0.0003s
-- add_index(:time_entries, :created_on)
   -> 0.0003s
==  AddActivityIndexes: migrated (0.0044s) ====================================

==  AddVersionsStatus: migrating ==============================================
-- add_column(:versions, :status, :string, {:default=>"open"})
   -> 0.0006s
==  AddVersionsStatus: migrated (0.0010s) =====================================

==  AddViewIssuesPermission: migrating ========================================
==  AddViewIssuesPermission: migrated (0.0031s) ===============================

==  AddDefaultDoneRatioToIssueStatus: migrating ===============================
-- add_column(:issue_statuses, :default_done_ratio, :integer)
   -> 0.0005s
==  AddDefaultDoneRatioToIssueStatus: migrated (0.0007s) ======================

==  AddVersionsSharing: migrating =============================================
-- add_column(:versions, :sharing, :string, {:default=>"none", :null=>false})
   -> 0.0006s
-- add_index(:versions, :sharing)
   -> 0.0003s
==  AddVersionsSharing: migrated (0.0013s) ====================================

==  AddLftAndRgtIndexesToProjects: migrating ==================================
-- add_index(:projects, :lft)
   -> 0.0004s
-- add_index(:projects, :rgt)
   -> 0.0003s
==  AddLftAndRgtIndexesToProjects: migrated (0.0010s) =========================

==  AddIndexToSettingsName: migrating =========================================
-- add_index(:settings, :name)
   -> 0.0004s
==  AddIndexToSettingsName: migrated (0.0006s) ================================

==  AddIndexesToIssueStatus: migrating ========================================
-- add_index(:issue_statuses, :position)
   -> 0.0004s
-- add_index(:issue_statuses, :is_closed)
   -> 0.0003s
-- add_index(:issue_statuses, :is_default)
   -> 0.0004s
==  AddIndexesToIssueStatus: migrated (0.0015s) ===============================

==  RemoveEnumerationsOpt: migrating ==========================================
-- remove_column(:enumerations, :opt)
   -> 0.0213s
==  RemoveEnumerationsOpt: migrated (0.0216s) =================================

==  ChangeWikiContentsTextLimit: migrating ====================================
==  ChangeWikiContentsTextLimit: migrated (0.0000s) ===========================

==  ChangeUsersMailNotificationToString: migrating ============================
-- rename_column(:users, :mail_notification, :mail_notification_bool)
   -> 0.0334s
-- add_column(:users, :mail_notification, :string, {:default=>"", :null=>false})
   -> 0.0005s
-- remove_column(:users, :mail_notification_bool)
   -> 0.0332s
==  ChangeUsersMailNotificationToString: migrated (0.0689s) ===================

==  UpdateMailNotificationValues: migrating ===================================
==  UpdateMailNotificationValues: migrated (0.0000s) ==========================

==  AddIndexOnChangesetsScmid: migrating ======================================
-- add_index(:changesets, [:repository_id, :scmid], {:name=>:changesets_repos_scmid})
   -> 0.0004s
==  AddIndexOnChangesetsScmid: migrated (0.0007s) =============================

==  AddIssuesNestedSetsColumns: migrating =====================================
-- add_column(:issues, :parent_id, :integer, {:default=>nil})
   -> 0.0006s
-- add_column(:issues, :root_id, :integer, {:default=>nil})
   -> 0.0005s
-- add_column(:issues, :lft, :integer, {:default=>nil})
   -> 0.0005s
-- add_column(:issues, :rgt, :integer, {:default=>nil})
   -> 0.0006s
==  AddIssuesNestedSetsColumns: migrated (0.0033s) ============================

==  AddIndexOnIssuesNestedSet: migrating ======================================
-- add_index(:issues, [:root_id, :lft, :rgt])
   -> 0.0004s
==  AddIndexOnIssuesNestedSet: migrated (0.0006s) =============================

==  ChangeChangesPathLengthLimit: migrating ===================================
-- change_column(:changes, :path, :text, {:default=>nil, :null=>true})
   -> 0.0156s
-- change_column(:changes, :path, :text, {:null=>false})
   -> 0.0149s
-- change_column(:changes, :from_path, :text)
   -> 0.0149s
==  ChangeChangesPathLengthLimit: migrated (0.0460s) ==========================

==  EnableCalendarAndGanttModulesWhereAppropriate: migrating ==================
==  EnableCalendarAndGanttModulesWhereAppropriate: migrated (0.0015s) =========

==  AddUniqueIndexOnMembers: migrating ========================================
-- add_index(:members, [:user_id, :project_id], {:unique=>true})
   -> 0.0004s
==  AddUniqueIndexOnMembers: migrated (0.0012s) ===============================

==  AddCustomFieldsVisible: migrating =========================================
-- add_column(:custom_fields, :visible, :boolean, {:default=>true, :null=>false})
   -> 0.0006s
==  AddCustomFieldsVisible: migrated (0.0010s) ================================

==  ChangeProjectsNameLimit: migrating ========================================
-- change_column(:projects, :name, :string, {:default=>"", :null=>false, :limit=>nil})
   -> 0.0889s
==  ChangeProjectsNameLimit: migrated (0.0892s) ===============================

==  ChangeProjectsIdentifierLimit: migrating ==================================
-- change_column(:projects, :identifier, :string, {:limit=>nil})
   -> 0.0262s
==  ChangeProjectsIdentifierLimit: migrated (0.0264s) =========================

** Invoke db:schema:dump (first_time)
** Invoke environment 
** Execute db:schema:dump
/usr/bin/rake:19: [BUG] Segmentation fault
ruby 1.8.7 (2011-02-18 patchlevel 334) [i686-linux], MBARI 0x8770, Ruby Enterprise Edition 2011.03

Aborted

RE: Segmentation fault during db:migrate - Added by Etienne Massip over 8 years ago

Is the full migration rolled back then ?

What's your gem list, what's you rake version, did you try another rake version ?

Don't you have an easier question ?

RE: Segmentation fault during db:migrate - Added by John Griffin over 8 years ago

Is the full migration rolled back then ?

As I said, I'm building this on a parallel database. The original dbs remain untouched.

What's your gem list, what's you rake version, did you try another rake version ?

Gem list:

*** LOCAL GEMS ***

abstract (1.0.0)
actionmailer (3.0.4, 3.0.0, 2.3.11, 2.3.5, 2.1.1)
actionpack (3.0.4, 3.0.0, 2.3.11, 2.3.5, 2.1.1)
activemodel (3.0.4, 3.0.0)
activerecord (3.0.4, 3.0.0, 2.3.11, 2.3.5, 2.1.1)
activeresource (3.0.4, 3.0.0, 2.3.11, 2.3.5, 2.1.1)
activesupport (3.0.4, 3.0.0, 2.3.11, 2.3.5, 2.1.1)
arel (2.0.8, 1.0.1)
builder (2.1.2)
bundler (1.0.10, 1.0.2, 1.0.0)
calendar_date_select (1.16.1)
capistrano (2.5.19)
capistrano-ext (1.2.1)
cgi_multipart_eof_fix (2.5.0)
closure-compiler (0.3.3, 0.3.2)
columnize (0.3.1)
cucumber (0.9.3, 0.9.2, 0.8.5)
cucumber-rails (0.3.2)
daemon_controller (0.2.6)
daemons (1.1.0)
database_cleaner (0.6.0, 0.5.1, 0.5.0)
diff-lcs (1.1.2)
echoe (4.3.1)
erubis (2.6.6)
factory_girl (1.3.2)
fastthread (1.0.7)
file-tail (1.0.5)
gem_plugin (0.2.3)
gemcutter (0.6.1)
gherkin (2.2.9, 2.1.5, 2.1.4)
haml (3.0.21, 3.0.18, 2.2.24)
hanna (0.1.12)
highline (1.6.1)
i18n (0.4.2, 0.3.7)
jammit (0.5.3, 0.5.1)
json (1.4.6)
json_pure (1.4.6)
linecache (0.43)
mail (2.2.15, 2.2.5)
mime-types (1.16)
mysql (2.8.1)
mysql2 (0.2.6)
net-scp (1.0.3)
net-sftp (2.0.5)
net-ssh (2.0.23)
net-ssh-gateway (1.0.1)
passenger (3.0.3, 2.2.15)
polyglot (0.3.1)
rack (1.0.1)
rack-mount (0.6.13)
rack-test (0.5.7, 0.5.4)
rails (2.3.5)
railties (3.0.4, 3.0.0)
rake (0.8.7)
rdoc (2.3.0)
ri_cal (0.8.7)
rmagick (2.13.1)
rspec (2.0.1, 1.3.0)
rspec-core (2.0.1)
rspec-expectations (2.0.1)
rspec-mocks (2.0.1)
rspec-rails (2.0.1, 1.3.2)
ruby-debug (0.10.3)
ruby-debug-base (0.10.3)
rubyforge (2.0.4)
rubygems-update (1.3.7)
spruz (0.2.5)
sqlite3-ruby (1.2.1)
term-ansicolor (1.0.5)
thor (0.14.6, 0.14.0)
treetop (1.4.8)
trollop (1.16.2)
tzinfo (0.3.23)
will_paginate (2.3.15)
yui-compressor (0.9.1)

As you can see, rake is a 0.8.7. I've been hesitant to change rake versions as this box also supports development on our enterprise webapp (for which we use redmine to do issue tracking). Any specific version recommendations?

Don't you have an easier question ?

I wish :)
(1-10/10)

RE: Segmentation fault during db:migrate - Added by Etienne Massip over 8 years ago

0.8.7 is the most commonly used, guess you don't need to change it.

About the transaction, I meant : if you rake db:migrate a bare db, does the schema changes remain when the rake task segfault, or are they fully rollbacked (that's more to satisfy my curiosity than useful) ?

RE: Segmentation fault during db:migrate - Added by John Griffin over 8 years ago

The schema changes remain. Running db:mgirate on the same sqlite3 db as earlier (haven't touched it since I posted the results) now yields the following result:

root@ac-dev-vm1:/var/www/redmine-1.1# RAILS_ENV=production rake db:migrate --trace
(in /var/www/redmine-1.1)
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:migrate
** Invoke db:schema:dump (first_time)
** Invoke environment 
** Execute db:schema:dump
/usr/bin/rake:19: [BUG] Segmentation fault
ruby 1.8.7 (2011-02-18 patchlevel 334) [i686-linux], MBARI 0x8770, Ruby Enterprise Edition 2011.03

Aborted (core dumped)

It may also be worth noting that the webapp that this machine supports development on is also a RoR app, and db migrations for that app have had no issues.

RE: Segmentation fault during db:migrate - Added by Etienne Massip over 8 years ago

So I guess you can use Redmine as usual.

Could you post the core dump please ?

RE: Segmentation fault during db:migrate - Added by Etienne Massip over 8 years ago

From activeRecord migration.rb RDoc :

  # It will also
  # invoke the db:schema:dump task, which will update your db/schema.rb file
  # to match the structure of your database.

Could your db/schema.rb be read-only or something like that ?

RE: Segmentation fault during db:migrate - Added by John Griffin over 8 years ago

So I guess you can use Redmine as usual.

No .. I'm upgrading redmine in hopes of fixing another issue we're having with our current redmine install. The repository view is broken (for a couple months now). We don't really use the repository view except to fetch the changesets and apply commit messages to issues. When the repository view broke, I simply started a cron job which ran the fetch changesets task every 5 minutes or so. Except as of last Friday, redmine no longer recognizes our git repository as a git repository and my cron job has failed. The git repository is a git repository, is uncorrupted, and has proper permissions, so I figured it must be a problem with redmine. Since we're significantly behind, I figured - why try to fix the problem? Just upgrade. Seems the upgrade is just as problematic though.

Could you post the core dump please ?

Core dump is here: http://dl.dropbox.com/u/20569286/core.rake.21792

Could your db/schema.rb be read-only or something like that ?

schema.rb appears to have proper permissions. Read/write to owner, read-only to group and others. Tried opening up write permission to the group, still no luck. No executable bit set though.

RE: Segmentation fault during db:migrate - Added by John Griffin over 8 years ago

In case it's relevant, /etc/security/limits.conf:

*               soft    core            0
*               hard    core            0
*               hard    rss             10000   
*               hard    memlock         10000
*               hard    nproc           200
*               -       maxlogins       1
*               hard    data            102400  
*               hard    fsize           20480
@dev            soft    fsize           1000000
@dev            hard    nproc           300
@dev            hard    memlock         10000 
@adm            hard    core            100000
@adm            hard    rss             100000
@adm            soft    nproc           2000
@adm            hard    nproc           3000
@adm            hard    fsize           10000000
@adm            -       maxlogins       10
@dev            -       maxlogins       10
mysql           hard    fsize           1000000 

# End of file

RE: Segmentation fault during db:migrate - Added by Etienne Massip over 8 years ago

I'm a very basic linux user and I didn't know such a file existed :/

I meant before that I rake crash at the very end of its work, then the Redmine db migration went actually fine and you can still use your new Redmine instance.

Just asked the core dump to see the call stack, I got it,you can remove it now.

(1-18/18)