Giter Club home page Giter Club logo

Comments (7)

eyberg avatar eyberg commented on June 10, 2024

hrm - I tried to repro and couldn't - are you seeing anything in firecracker logs? what if you enable '--trace' ?

from ops.

francescolavra avatar francescolavra commented on June 10, 2024

What Nanos kernel version are you using? I can only reproduce the problem with old versions (0.1.41 and older), while with kernel version 0.1.42 or newer the problem doesn't occur. If you still see the problem when using a recent kernel version, what is your Firecracker version? I'm testing with Firecracker v1.3.3

from ops.

Roopsai507 avatar Roopsai507 commented on June 10, 2024

I was using

Ops Kernel version :  0.1.47
Firecracker version :  1.1.2

Updating to the latest Firecracker version (1.6.0) resolved the issue!
It is working with the higher firecracker version. Thank you

from ops.

Roopsai507 avatar Roopsai507 commented on June 10, 2024

Hi, with Ops Kernel version : 0.1.47 , Firecracker version : 1.6.0
Encountering issues during the startup of the Firecracker. At times, my unikernel process doesn't start successfully. I faced this issue even after multiple attempts.

FAILED LOGS

2024-01-10T16:09:58.808443225 [9090:main] Running Firecracker v1.6.0
2024-01-10T16:09:58.820577445 [9090:main] Artificially kick devices.
2024-01-10T16:09:58.820646238 [9090:main] Successfully started microvm that was configured from one single json
2024-01-10T16:09:58.820801259 [9090:fc_vcpu 0] Received KVM_EXIT_SHUTDOWN signal
2024-01-10T16:09:58.820835506 [9090:main] Vmm is stopping.
2024-01-10T16:09:58.820978355 [9090:main] Vmm is stopping.
2024-01-10T16:09:58.822355908 [9090:main] Firecracker exiting successfully. exit_code=0                                                                        

Why do I encounter the error mentioned above? However, when I retry using the same script(created a script file for firecracker start) after some time, it works fine, as shown below.

024-01-10T16:35:44.236402451 [9090:main] Running Firecracker v1.6.0
2024-01-10T16:35:44.255481477 [9090:main] Artificially kick devices.
2024-01-10T16:35:44.255549506 [9090:main] Successfully started microvm that was configured from one single json
warning: ACPI MADT not found, default to 1 processor
en1: assigned 11.244.15.161
Server started
en1: assigned FE80::200:FF:FE00:0

from ops.

eyberg avatar eyberg commented on June 10, 2024

the first log snippet doesn't seem to indicate an error as it has an exit code of 0; do you have a code sample for your guest we could look at?

from ops.

Roopsai507 avatar Roopsai507 commented on June 10, 2024

Here is the sample code that I have been trying to run in firecracker.
main.zip
Reference for v8go - https://github.com/rogchap/v8go
config.json is for ops image creation - ops image create -c config.json --imagename test

> ops image tree test
/
|   lib64
|   |   ld-linux-x86-64.so.2
|   lib
|   |   x86_64-linux-gnu
|   |   |   libstdc++.so.6
|   |   |   libnss_dns.so.2
|   |   |   libc.so.6
|   |   |   libgcc_s.so.1
|   |   |   libm.so.6
|   |   |   libpthread.so.0
|   |   |   libresolv.so.2
|   etc
|   |   ssl
|   |   |   certs
|   |   |   |   ca-certificates.crt
|   |   resolv.conf
|   |   passwd
|   main
|   proc
|   |   sys
|   |   |   kernel
|   |   |   |   hostname
|   sample.js

I have created binary from the Golang code, created the ops image, and tried to run it in Firecracker.
I am facing one more issue now - running out of memory

allocate_table_page error: failed to allocate page table memory
map_level error: failed to allocate page table memory
ra 0xffffffff800b96a5

frame trace: 
ffffc00000e4fec8:   ffffffff800b96a5
ffffc00000e4ff18:   ffffffff800b9786
ffffc00000e4ff38:   ffffffff800f111b
ffffc00000e4ff98:   ffffffff80122add
ffffc00000e4ffe8:   ffffffff800010ed
0000000102403c08:   0000000000ae62c3
0000000102403c38:   0000000000a5ba2f
0000000102403c58:   0000000000a1c07f
0000000102403d88:   0000000000a1abaa
000000c0000b5950:   000000000080c355
000000c0000b5988:   0000000000a15e68
000000c0000b59b0:   0000000000a17e35
000000c0000b59e0:   0000000000a1a217
000000c0000b5ac8:   0000000000a074a9
000000c0000b5af0:   0000000000a08dc2
000000c0000b5b40:   0000000000a09a6e
000000c0000b5b70:   0000000000a062d4
000000c0000b5fb0:   0000000000a0a288
000000c0000b5fd8:   000000000086ea21

loaded klibs: 
map failed for v 0x3c1e00000000, p 0xbb16000, len 0x1000, flags 0x8000000000000206
2024-01-17T12:24:30.929038447 [9090:main] Vmm is stopping.

I got this issue when I was performing loadtest on my server: unikernel-firecracker
memory (RAM) - 256MB (if I try to increase RAM - some more requests are executed)

./wrk -d 10s -c 1 -t 1 'http://10.0.0.1:8080' -s body.lua
Running 10s test @ http://10.0.0.1:8080
  1 threads and 1 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency     4.42ms  394.93us   6.91ms   70.21%
    Req/Sec   220.33     33.68   270.00     83.33%
  527 requests in 10.02s, 66.90KB read
Requests/sec:     52.58
Transfer/sec:      6.67KB

the same i have tried it in centos-firecracker with the same conf - memory 256 MB

./wrk -d 30s -c 50 -t 40 'http://10.0.0.1:8080' -s body.lua
Running 30s test @ http://10.0.0.1:8080
  40 threads and 50 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   260.60ms  104.57ms 787.84ms   78.11%
    Req/Sec     4.25      2.38    30.00     89.11%
  4599 requests in 30.04s, 583.86KB read
Requests/sec:    153.07
Transfer/sec:     19.43KB

Can i know root cause of the issue and how to fix it?

from ops.

francescolavra avatar francescolavra commented on June 10, 2024

The out of memory issue is fixed by nanovms/nanos#1994. If you want to try out the updated Nanos kernel without waiting for this PR to be merged, you can add the --nanos-version d875bfe option to your ops image create command, and then change the "kernel_image_path" option in the Firecracker config file to "~/.ops/d875bfe/kernel.img".

As for the other issue (the unikernel process doesn't start successfully), I was unable to reproduce it with the sample code you gave us, neither when using the latest Nanos release, nor after applying the changes in the above PR: I tried multiple times with both Firecracker v1.3.3 and v1.6.0, and the process always starts successfully every time I run Firecracker.

from ops.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.