OCI Instance stuck in “starting”, “stopping”, “rebooting”, what to do?

What to do when your Oracle Cloud Infrastructure instance gets instance

Recently right after doing a regular apt-get dist-upgrade my OCI instance got stuck for a few hours in the “reboot” state.

Using the web GUI to restart didn’t work, and the result was the same through the command line.

After a few hours, the machine did change to “starting” but it also got stuck there till the next morning. Web GUI and command line tool did not help again.

So I started searching… I even created an account on Oracle Communities (which is horribly organize, really hard to get to what you need; plus when I clicked on the right resource (I think), it told me I don’t have permission to access it…. wth?, it’s supposed to be community support)

Anyways… after trying to add a payment method to my account, and being blocked by their anti-fraud system telling me “We’re unable to process your transaction. If you continue to encounter the error, you may contact Oracle Customer Service..”; I tried chatting with Customer Service, which just told me they couldn’t do anything….

So I decided to see what else I could do.

Being on the free tier, and using all my 4 Ampere instances, I decided to terminate the stuck one *without* terminating the boot volume, and provision another one, without a boot volume….

Of course that doesn’t seem to be a use case Oracle thought of, so I had to provision a new instance with its own boot volume, which automatically terminates the new instance as it puts me over the free tier limit.

So my solution was to attach the boot volume from the now terminated instance (ex-stuck) to a running one, run their “iscsi” commands to let Linux know about the volume (Thanks God they don’t differenciate between attaching a boot volume and a regular volume); mount the volume, and then rsync to my laptop.

Next step is to simply terminate the boot volume, that I now have copied all the files I wanted from; Create a new instance and restore the data back to it.

Hope this helps someone 🙂

Base Department – You Let Me Down

Should we do some reggie stylie ya
Come on the hit, oh mama mia
Dance track of better of my jam
Superman lover makes you jump up
Jump jump, come on, spring it up
Flame of the sparkle makes the partyman runner
Jump up and move your ass
King of the raggamuffin move showbiz

Want to say ya
Hi ho zipper, zipper hi ho
Give me the microphone
Don’t Loose Control
Call me the wizard, say abracadabra
Rocking microphone like a raggamuffin rapper
Just like record it tempo
Don’t kill the best hit, shock, wonder!
Check attack catch erect speedy Gonzales
Rocking microphone say slam black mondo

You let me down
Own all my heart (3X)
You never never kiss my red lips

It’s the superhit, I give a vision, it’s keeping on a motion
Stopping on the back door it’s keeping me about adore hit
Move to the beat of the dancefloor track
I’m a black mondo rastafara
Get get a twist mic ya
Raggamuffin record with a little bit of rap
Jump up and move your ass
King of the raggamuffin move showbiz

You let me down
Own all my heart (3X)
You never never kiss my red lips

found in a russian forum: http://www.danceforum.ru/lofiversion/index.php/t9176.html

[music] Master Jam – I wanna know

I wanna know
If the time is right to get into the night
I wanna know
If you're the one to show me the way to go

I wanna know if the time is right
I wanna know if it right tonight

I wanna know if the time is right
I wanna know, wanna know

The night is the only time to feel all right
Just believe me and feel me
Just believe me (you will feel so right)
I wanna know about the time is right
I wanna know

 

watch it here

[music] Imperio – Veni vidi vici

Aaaah Aaaaah

Veni vidi vici

Yeah yeah

I've got to let, I've got,
I've got to let, I've got,
I've got to let you take control
I've got to let, I've got,
I've got to let, I've got,
I've got to let you take control

Veni vidi vici
Veni vidi vici
Veni vidi vici
Veni vidi vici

Ave Imperator

Aaaaah Aaaaah
Take your beat take it and dance now
Aaaaah Aaaaah
Take your beat take it and dance now

Veni vidi vici (hey)
Veni vidi vici (hey)
Veni vidi vici (hey)
Veni vidi vici

Veni vidi vici

 

watch it here:

[music] First Base – Love is paradise

We have to find a way to come together
We have to find a way to make it better
Love is paradise

Cause love multiplies
Love is paradise
Cause love multiplies
Baby let me get that body
Pump it like a hotty, 'Cause I'm hot, see
Cleanse me, rub me s__y lady
Touch me, taste me, yes no maybe?
I got a lot of love and I'm goin to give
My heart to you so we can live
Together forever in paradise
Anything for you I'll sacrifice
My money, my cars and diamond rings
Like SWV girl, anything
Just a h____ little devil with a pitchfork
Sailing on the sea of love at this port
I l___ for you, my trust for you
And all other women in the dust for you
I can't explain, my heart feel s nice
I guess with that love is paradise

We have to find a way to come together
We have to find a way to make it better
Love is paradise
Cause love multiplies
Love is paradise
Cause love multiplies
We have to find a way to come together
We have to find a way to make it better
Love is paradise
Cause love multiplies
Love is paradise
Cause love multiplies

 

 

watch it here:

 

[music] Julia – All I want

All she wants – love and devotion
All I want is love and devotion
All she wants
All I want is love and devotion
All she wants

All you want is love and devotion
Believe in me girl, that's the reason
I'll be there every day and night
Just to make you see that everything's alright
I make sure that you're by my side
When the sun comes up you realize
I'm never gonna, never gonna, never gonna give up
Can't you see it girl I'm never give you up

Can't you feel all the things in my mind?
Can't you see it boy when you look in my eyes?
I know that I want you now
Better prove your love and show me how

All I want is love and devotion
All she wants
All I have I wanna give to you
Love and devotion
All I want is love and devotion
All she wants
All I have I wanna give to you
Love and devotion

It's the love girl, or devotion
They make me want my full attention
I make you feel, make you feel alright
All through the day and all through the day
I'm there for you in the morning light
Feel my caress as I hold you tight
Just to give you what you need
Love and devotion

Can't you feel all the things in my mind?
Can't you see it boy when you look in my eyes?
I know that I want you now
Better prove your love and show me how

 

 

watch it here: 

 

[music] The Free – lover on the line (Extended Mix) [1994]

Hello, hello, talk to me
you're my lover on the line

 

Lover on the line.
You won't see me but you're blind
Try to touch me, touch me with your mind
Love me on the line


For this unit you are mine
I'm your lover, lover on the line
Lover, lover on the line
Call me, call me anytime
Tell me what I like to hear
Make me feel like you are near
On the phone you make me sweat
You make my body oh so wet
Tell me what is on your mind
'Cause you're my lover on the line


Lover on the line.
You want see me but you're blind
Try to touch me, touch me with your mind
Love me on the line
For this unit you are mine
I'm your lover, lover on the line
If you tell me all your dreams
I'll satisfy your needs (Talk to me, just talk to me)
If you keep on holding the line
I'll tell you all my dreams (Talk to me, just talk to me)


I can see you in my mind
I can hear you bump and grind
Girl I like the way you moan
When you're on your telephone
Don't be afraid now, don't be shy
You can feel me if you try.
I can have you anytime
'Cause you're my lover on the line
Lover on the line.


You want see me but you're blind
Try to touch me, touch me with your mind
Love me on the line
For this unit you are mine
I'm your lover, lover on the line
If you tell me all your dreams
I'll satisfy your needs (Talk to me, just talk to me)
If you keep on holding the line
I'll tell you all my dreams (Talk to me, just talk to me)


With the satellites and through the space
I talk to you, a voice without a face
With the satellites and through the space
I'm the (???) you love and you embrace
– Hello… Hello… Talk to me… You're me lover on the line
Lover on the line.
You want see me but you're blind
Try to touch me, touch me with your mind
Love me on the line
For this unit you are mine
I'm your lover, lover on the line
If you tell me all your dreams
I'll satisfy your needs (Talk to me, just talk to me)
If you keep on holding the line
I'll tell you all my dreams (Talk to me, just talk to me)
With the satellites and through the space
I talk to you and my voice hesitate

 

Watch it here: https://www.youtube.com/watch?v=8SEdmdGpBEw

SystemD: a few sample scripts to run Selenium Hub

[Work-In-Progress post]

 

This morning, I crafted a few systemd unit files to help me manage running a Selenium Hub. As an extra benefit, I have some stuff ready for whenever I move to using CoreOS. 🙂

I'll keep the files here:

 

https://github.com/PortNumber53/systemd-stuffs/tree/master/selenium-hub

 

So if you're familiar with git, systemd and docker, go have fun, otherwise stick around and I'll do my best to guide you through this.

 

How to take advantage of these scripts:

First of all, those are heavily base on documentation from https://github.com/SeleniumHQ/docker-selenium ( credits to them )

I assume you have decent knowledge of your Linux distribuition. I like ArchLinux so commands will be targetted to it. Feel free to contribute in the comments for other distros and I'll keep the post updated.

 

 

1. Install tools you'll need.

[sample@samplearch ~]$ sudo pacman -S git docker
[sudo] password for sample:
resolving dependencies...
looking for conflicting packages...

Packages (6) bridge-utils-1.5-2  containerd-0.2.2-1  perl-error-0.17024-1  runc-0.1.1-1  docker-1:1.11.2-2  git-2.9.0-1

Total Download Size:   16.53 MiB
Total Installed Size:  88.46 MiB

:: Proceed with installation? [Y/n] y
:: Retrieving packages...
 bridge-utils-1.5-2-x86_64                              13.4 KiB  0.00B/s 00:00 [#############################################] 100%
 perl-error-0.17024-1-any                               18.4 KiB  0.00B/s 00:00 [#############################################] 100%
 git-2.9.0-1-x86_64                                      4.5 MiB  2.62M/s 00:02 [#############################################] 100%
 runc-0.1.1-1-x86_64                                  1389.0 KiB  6.25M/s 00:00 [#############################################] 100%
 containerd-0.2.2-1-x86_64                               3.9 MiB  4.07M/s 00:01 [#############################################] 100%
 docker-1:1.11.2-2-x86_64                                6.7 MiB  4.28M/s 00:02 [#############################################] 100%
(6/6) checking keys in keyring                                                  [#############################################] 100%
(6/6) checking package integrity                                                [#############################################] 100%
(6/6) loading package files                                                     [#############################################] 100%
(6/6) checking for file conflicts                                               [#############################################] 100%
(6/6) checking available disk space                                             [#############################################] 100%
:: Processing package changes...
(1/6) installing perl-error                                                     [#############################################] 100%
(2/6) installing git                                                            [#############################################] 100%
Optional dependencies for git
    tk: gitk and git gui
    perl-libwww: git svn
    perl-term-readkey: git svn
    perl-mime-tools: git send-email
    perl-net-smtp-ssl: git send-email TLS support
    perl-authen-sasl: git send-email TLS support
    python2: various helper scripts
    subversion: git svn
    cvsps2: git cvsimport
    gnome-keyring: GNOME keyring credential helper
(3/6) installing runc                                                           [#############################################] 100%
(4/6) installing containerd                                                     [#############################################] 100%
(5/6) installing bridge-utils                                                   [#############################################] 100%
(6/6) installing docker                                                         [#############################################] 100%
Optional dependencies for docker
    btrfs-progs: btrfs backend support
    lxc: lxc backend support
:: Running post-transaction hooks...
(1/1) Updating manpage index...
[sample@samplearch ~]$

 

 

2. Clone the repo to any folder you'd like

[sample@samplearch ~]$ git clone https://github.com/PortNumber53/systemd-stuffs
Cloning into 'systemd-stuffs'...
remote: Counting objects: 37, done.
remote: Total 37 (delta 0), reused 0 (delta 0), pack-reused 37
Unpacking objects: 100% (37/37), done.
Checking connectivity... done.
[sample@samplearch ~]$ cd systemd-stuffs/
[sample@samplearch systemd-stuffs]$

 

3. Create a symlink to the hub unit and start it

[root@samplearch system]# cd /usr/lib/systemd/system
[root@samplearch system]# ln -s /home/sample/systemd-stuffs/selenium-hub/selenium-grid-hub.service
[root@samplearch system]# systemctl start selenium-grid-hub.service
[root@samplearch system]#

After the docker pulls the image and starts the contaner, you can check the status for the service:

 

[root@samplearch system]# systemctl status selenium-grid-hub.service
* selenium-grid-hub.service - Selenium Grid Hub
   Loaded: loaded (/home/sample/systemd-stuffs/selenium-hub/selenium-grid-hub.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2016-07-05 14:09:34 PDT; 18s ago
  Process: 8516 ExecStop=/usr/bin/docker stop selenium-hub (code=exited, status=0/SUCCESS)
  Process: 8629 ExecStartPre=/usr/bin/docker pull selenium/hub:latest (code=exited, status=0/SUCCESS)
  Process: 8589 ExecStartPre=/usr/bin/docker rm selenium-hub (code=exited, status=0/SUCCESS)
  Process: 8577 ExecStartPre=/usr/bin/docker kill selenium-hub (code=exited, status=1/FAILURE)
 Main PID: 8637 (docker)
    Tasks: 6 (limit: 512)
   Memory: 4.5M
      CPU: 66ms
   CGroup: /system.slice/selenium-grid-hub.service
           `-8637 /usr/bin/docker run -p 4444:4444 --name selenium-hub selenium/hub:latest

Jul 05 14:09:35 samplearch docker[8637]: 21:09:35.343 INFO - Launching Selenium Grid hub
Jul 05 14:09:36 samplearch docker[8637]: 2016-07-05 21:09:36.050:INFO::main: Logging initialized @887ms
Jul 05 14:09:36 samplearch docker[8637]: 21:09:36.077 INFO - Will listen on 4444
Jul 05 14:09:36 samplearch docker[8637]: 21:09:36.129 INFO - Will listen on 4444
Jul 05 14:09:36 samplearch docker[8637]: 2016-07-05 21:09:36.137:INFO:osjs.Server:main: jetty-9.2.z-SNAPSHOT
Jul 05 14:09:36 samplearch docker[8637]: 2016-07-05 21:09:36.201:INFO:osjsh.ContextHandler:main: Started o.s.j.s.ServletContextHandl
Jul 05 14:09:36 samplearch docker[8637]: 2016-07-05 21:09:36.224:INFO:osjs.ServerConnector:main: Started ServerConnector@dc1556d{HTT
Jul 05 14:09:36 samplearch docker[8637]: 2016-07-05 21:09:36.224:INFO:osjs.Server:main: Started @1061ms
Jul 05 14:09:36 samplearch docker[8637]: 21:09:36.225 INFO - Nodes should register to http://172.17.0.2:4444/grid/register/
Jul 05 14:09:36 samplearch docker[8637]: 21:09:36.225 INFO - Selenium Grid hub is up and running

If you want to start the hub on boot, do this:

[root@samplearch system]# systemctl enable selenium-grid-hub.service

 

4. Create a symlink and start the chrome node service:

[root@samplearch system]# ln -s /home/sample/systemd-stuffs/selenium-hub/selenium-chrome-node\@.service
[root@samplearch system]# systemctl start [email protected]
[root@samplearch system]#

Because this unit is a template, you will see that it has an "@" in its name. Also note that when starting the service, you can tell which port should be exposed on the VNC server (you can connect to the node using a VNC client). For this sample I am using port 12000.

This allows you to run multiple chome nodes if you need.

 

5. Do the same for a Firefox node service:

[root@samplearch system]# ln -s /home/sample/systemd-stuffs/selenium-hub/selenium-firefox-node\@.service
[root@samplearch system]# systemctl start [email protected]
[root@samplearch system]#

For this example, I am exposing port 30000.

 

 

Happy times using Selenium

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CoreOS: Resizing partition c0d0p9 on a HP DL360 G5

I recently installed CoreOS on my HP DL360 G5 and notice that even though I setup a hardware-raid 5 with 6 72GB SAS drives, my ninth partition was only 2GB in size.

After some research I found out that CoreOS is supposed to enlarge the ninth partition automatically but that didn't happen for my DL360, so I went digging.

 

After a quick google search I saw that there is a patch for that:

https://github.com/coreos/bugs/issues/1037


Unfortunatelly it doesn't seem to be in the stable channel (at the time of my installation), so I was trying to manually apply the change, which then made me realize that / and /usr are mounted read-only.

So I checked what /usr/lib64/coreos/extend-filesystems does and I had only to issue the following commands as root:

 

dl360g5 ~ # cgpt resize  /dev/cciss/c0d0p9
dl360g5 ~ # resize2fs /dev/cciss/c0d0p9
resize2fs 1.42.13 (17-May-2015)
Filesystem at /dev/cciss/c0d0p9 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 22
The filesystem on /dev/cciss/c0d0p9 is now 88960814 (4k) blocks long.

 

Using gdisk to confirm:

dl360g5 ~ # gdisk /dev/cciss/c0d0
GPT fdisk (gdisk) version 0.8.10

Partition table scan:
  MBR: hybrid
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with hybrid MBR; using GPT.

Command (? for help): p
Disk /dev/cciss/c0d0: 716544402 sectors, 341.7 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): FF0E5BB2-0C8E-495C-82C2-C1BDD46AAA0D
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 716544368
Partitions will be aligned on 2048-sector boundaries
Total free space is 4062 sectors (2.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            4096          266239   128.0 MiB   EF00  EFI-SYSTEM
   2          266240          270335   2.0 MiB     EF02  BIOS-BOOT
   3          270336         2367487   1024.0 MiB  FFFF  USR-A
   4         2367488         4464639   1024.0 MiB  FFFF  USR-B
   6         4464640         4726783   128.0 MiB   8300  OEM
   7         4726784         4857855   64.0 MiB    FFFF  OEM-CONFIG
   9         4857856       716544368   339.4 GiB   FFFF  ROOT

Command (? for help): q

And after rebooting:

 

Last login: Fri Dec 25 00:07:35 2015 from 192.168.1.151
CoreOS stable (835.9.0)
Failed Units: 1
  extend-filesystems.service
core@dl360g5 ~ $ df -h
Filesystem         Size  Used Avail Use% Mounted on
devtmpfs            16G     0   16G   0% /dev
tmpfs               16G     0   16G   0% /dev/shm
tmpfs               16G  480K   16G   1% /run
tmpfs               16G     0   16G   0% /sys/fs/cgroup
/dev/cciss/c0d0p9  329G   41M  316G   1% /
/dev/cciss/c0d0p3  985M  492M  442M  53% /usr
/dev/cciss/c0d0p1  128M   35M   94M  27% /boot
tmpfs               16G     0   16G   0% /media
tmpfs               16G     0   16G   0% /tmp
/dev/cciss/c0d0p6  108M   52K   99M   1% /usr/share/oem
core@dl360g5 ~ $

 

And now I have all the space I can from my raid-5 🙂

 

 

 

 

Bootstrap: prevent jump to content when clicking tabs

Recently I had to add tabs to a website and ran into not wanting the browser to jump to the panel content when tabs are clicked. I just want the content to switch.

After a little research, I found posts explaining how to obtain the opposite, and a little later found this:

http://blog.shaunscovil.com/post/55630727782/twitter-bootstrap-how-to-prevent-jump-when-tabs-are-clic

 

After giving their suggestion a try, I noticed that the path part of the URL was not being preserved (it could as well be something else on my javascript code), but anyways, here's what I have now:

 

// Change hash for page-reload
var url = document.location.toString();
if (url.match('#')) {
    $('.nav-tabs a[href=#' + url.split('#')[1] + ']').tab('show');
} else {
    $('.nav-tabs a[href=#tab_account]').tab('show');
}
$('.nav-tabs a').on('shown.bs.tab', function (e) {
    var url = document.location.toString();
    if (url.match('#')) {
        //$('.nav-tabs a[href=#' + url.split('#')[1] + ']').tab('show');

        url = url.split("#")[0];
    }
    history.pushState( null, null, url + $(this).attr('href') );
});

 

Hopefully that telps someone else.