Bug 1543316

Summary: Satellite 6.2 Upgrade Fails with error "rake aborted! NoMethodError: undefined method `first' for nil:NilClass" when there are custom bookmarks created
Product: Red Hat Satellite Reporter: sandeep mutkule <smutkule>
Component: SearchAssignee: Ondřej Ezr <oezr>
Status: CLOSED ERRATA QA Contact: Lucie Vrtelova <lvrtelov>
Severity: high Docs Contact:
Priority: urgent    
Version: 6.2.12CC: ahumbe, anahtomi, apatel, bkearney, bshahu, egolov, inecas, kcleveng, kgaikwad, mbacovsk, mhulan, mlele, rankumar, tbrisker, zhunting
Target Milestone: 6.8.0Keywords: EasyFix, Triaged, Upgrades
Target Release: Unused   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: foreman-2.1.0-0 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1851128 (view as bug list) Environment:
Last Closed: 2020-10-27 12:57:21 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description sandeep mutkule 2018-02-08 08:57:21 UTC
Description of problem: Customer is trying to upgrade from satellite 6.2.12 to 6.2.13  with command "# satellite-installer --scenario satellite --upgrade" and getting below error :

  Upgrade Step: db_seed...
  rake aborted!
  NoMethodError: undefined method `first' for nil:NilClass


 Seems to be there is an issue in bookmark related audit records. 

 Observed below logs: 

 /usr/share/foreman/db/seeds.d/15-bookmarks.rb:12:in `block (2 levels) in <top (required)>'
 /usr/share/foreman/db/seeds.d/15-bookmarks.rb:10:in `each'
 /usr/share/foreman/db/seeds.d/15-bookmarks.rb:10:in `block in <top (required)>'
 Seeding /usr/share/foreman/db/seeds.d/15-bookmarks.rb



Version-Release number of selected component (if applicable):

Satellite 6.2.12


How reproducible: 
With customers database dump

Steps to Reproduce:
 1. Restore customer database on satellite server and then try to upgrade.


Actual results: Satellite Upgrade ends with below error:

  Upgrade Step: db_seed...
  rake aborted!
  NoMethodError: undefined method `first' for nil:NilClass


Expected results: Upgrade should be successful.


Additional info:

Comment 1 Brad Buckingham 2018-02-08 17:43:53 UTC
*** Bug 1541477 has been marked as a duplicate of this bug. ***

Comment 8 Mihir Lele 2018-09-23 16:52:48 UTC
Hello,

Thanks for the patch. The db:seed started failing with below error:

---

Unable to create bookmark: Name has already been taken

---

I had to remove the default subscription bookmarks and run db:seed to recreate them which resolved the issue:

---

# echo 'Bookmark.find_by_name("list hypervisors").destroy' | foreman-rake console
# echo 'Bookmark.find_by_name("future").destroy' | foreman-rake console
# echo 'Bookmark.find_by_name("expiring soon").destroy' | foreman-rake console

# foreman-rake db:seed --trace
---

Comment 11 Tomer Brisker 2020-03-30 11:05:54 UTC
Created redmine issue https://projects.theforeman.org/issues/29433 from this bug

Comment 12 Bryan Kearney 2020-04-22 20:20:34 UTC
Upstream bug assigned to oezr

Comment 13 Bryan Kearney 2020-04-22 20:20:38 UTC
Upstream bug assigned to oezr

Comment 14 Bryan Kearney 2020-04-27 20:59:31 UTC
Moving this bug to POST for triage into Satellite 6 since the upstream issue https://projects.theforeman.org/issues/29433 has been resolved.

Comment 19 errata-xmlrpc 2020-10-27 12:57:21 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Important: Satellite 6.8 release), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2020:4366