Freeze or Hang of Oracle dbca and “startup nomount” running on Linux on VirtualBox 5

I encountered a problem with database creation freezing/hanging at a very early stage, with the process spinning on 100% CPU while not seeming to be doing anything. This happened both when trying to start up the Oracle database configuration assistant (dbca), where it froze on the splash screen, and when using the “startup nomount” command in sqlplus.

My setup is:

  • Oracle 11.2 (both 11.2.0.3 and 11.2.0.4);
  • Oracle Linux 6.7
  • VirtualBox 5.0.10, installed on Windows 7.

The process occupying 100% CPU was similar to that below:

oracleDBUA5305324 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

I unsuccessfully tried a few things to get to the bottom of this or eliminate possible causes: tracing with strace, switching between ASMM (sga_target) and AMM (memory_target), switching between normal pages and huge pages.

My colleague Frits Hoogland offered to help and he figured it out.

I logged into sqlplus as sysdba, which created the following database session:

$ ps -ef
oracle 3638 3637  0 17:42  oracleMAGPIE (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

We traced this session with the ‘perf top’ command, of which I was previously unaware. perf is a great profiling tool, included in the Linux 2.6 kernel. ‘perf top’ gives a dynamic view of the performance of a process, similar, as the name suggests, to the top command. We passed it the process id of the database session:

$ perf top -p 3638

I issued the ‘startup nomount’ command in the sqlplus session. The ‘perf top’ output, after a few seconds, settled on showing the following:

perf_top_skgvm

This shows that the process was looping executing skgvm_cpuid. Frits recognised this meant it was stuck trying to identify the CPU type.

This led us to check the CPU’s definition in VirtualBox.

The problem was caused by a new performance enhancement feature in VirtualBox 5: ‘paravirtualization’. The ‘Paravirtualization Interface’ was set to ‘Default’:

paravirtualization

Shutting down the VM and changing this to ‘Minimal’ resolved the problem.

I experimented further and found that setting it to ‘None’ and ‘Legacy’ also resolved the problem. Setting it to ‘KVM’ caused the same freeze to occur on trying to identify the CPU type.  On a Linux VM I imagine setting this to ‘Default’ and ‘KVM’ is exactly the same thing. The other setting available, ‘Hyper-V’, is intended for Windows VMs.

It looks like this, hopefully great, new feature in Virtualbox 5 is not completely bug-free yet.

Leave a comment

13 Comments

  1. Michael Geuer

     /  February 11, 2016

    Thank you very much, after two complete new installations (OS, DB) with a freezed DBCA, your article saved a lot of time.
    Michael

    Reply
  2. came across the same issue
    can add that the issue is reproduced on AMD and isn’t on Intel processors
    do you have an AMD cpu?

    Reply
  3. wols10

     /  February 24, 2016

    Ohhh , thank you !! , it took a long time with this and thanks to you I’ve solved it . !

    Reply
  4. Rich

     /  May 30, 2016

    Thank you very much for posting this. I’m also using VirtualBox 5 and had been fighting this for quite a while as I was building a VM.

    Reply
  5. Axel

     /  June 5, 2016

    Cudos Patrickl. Your hint finally solved my problem allthough in my case it was svgvm_hpvm_xen burning up cpu percentage.

    Reply
  6. Heraldo

     /  July 9, 2016

    Thank you Patrick.
    I found your workaround at it works. After a week of running in circles, trying oel 7, oel 6, mixing oracle GI 12 and GI 11, I finally have it installed. I can confirm that it affects not only RDBMS, but GI install also (it freezes runnig root.sh trying to startup ASM instance).
    I also have an AMD processor, don’t have any intel, so I can’t test the issue.
    Thanks again

    Reply
  7. Yevgen

     /  February 12, 2017

    Thanks a lot. You save my time.
    My CPU is also AMD.
    Once again thank you.

    Reply
  8. Ram

     /  December 5, 2017

    Thanks a lot… Awesome analysis and root cause analysis.. I have been troubleshooting this whole of last night.. FInally here I find the answer…

    Reply
  9. Pranavf

     /  May 10, 2018

    Issue is because of SQLplus might running from the oracle client home and it crashing on running the startup commands.
    Run the sqlplus from the non-client oracle home using admin command prompt and try the commands then it should work as expected.
    so resolution is to run the sqlplus from the main oracle home

    Reply
    • Thanks for the comment, but it’s not correct in this case. There was no oracle client installation on this server; sqlplus was running from the main (and only) Oracle home. The resolution was to adjust the VirtualBox paravirtualization setting, as described.

      Reply
  1. VBox 5.0.10 crash issues with our Hands-On-Lab | Upgrade your Database - NOW!

Leave a reply to Axel Cancel reply