summaryrefslogtreecommitdiffstats
path: root/dev-tools
diff options
context:
space:
mode:
authortorben2016-01-15 17:46:14 +0100
committertorben2016-01-15 17:46:14 +0100
commitdc37504ae94313bf395ab6b9efa8dde4d150d627 (patch)
tree9e607c0dab2d538f1bd9c560f1dacfbde1617548 /dev-tools
parentdebugging (diff)
downloadsystemd-init-dc37504ae94313bf395ab6b9efa8dde4d150d627.tar.gz
systemd-init-dc37504ae94313bf395ab6b9efa8dde4d150d627.tar.xz
systemd-init-dc37504ae94313bf395ab6b9efa8dde4d150d627.zip
Fix.
Diffstat (limited to 'dev-tools')
-rw-r--r--dev-tools/qemuDebuggingPatch/qemu-nbd.c116
-rw-r--r--dev-tools/virtualBoxTFTPRoot/pxelinux.cfg/default2
2 files changed, 67 insertions, 51 deletions
diff --git a/dev-tools/qemuDebuggingPatch/qemu-nbd.c b/dev-tools/qemuDebuggingPatch/qemu-nbd.c
index 3af28a07..ce0043d4 100644
--- a/dev-tools/qemuDebuggingPatch/qemu-nbd.c
+++ b/dev-tools/qemuDebuggingPatch/qemu-nbd.c
@@ -244,64 +244,80 @@ static void *nbd_client_thread(void *arg)
pthread_t show_parts_thread;
Error *local_error = NULL;
+ // changed
+ while(1) {
+ // --
+ sock = socket_connect(saddr, &local_error, NULL, NULL);
+ if (sock < 0) {
+ error_report_err(local_error);
+ goto out;
+ }
- sock = socket_connect(saddr, &local_error, NULL, NULL);
- if (sock < 0) {
- error_report_err(local_error);
- goto out;
- }
-
- ret = nbd_receive_negotiate(sock, NULL, &nbdflags,
- &size, &local_error);
- if (ret < 0) {
- if (local_error) {
- fprintf(stderr, "%s\n", error_get_pretty(local_error));
- error_free(local_error);
+ ret = nbd_receive_negotiate(sock, NULL, &nbdflags,
+ &size, &local_error);
+ if (ret < 0) {
+ if (local_error) {
+ fprintf(stderr, "%s\n", error_get_pretty(local_error));
+ error_free(local_error);
+ }
+ goto out_socket;
}
- goto out_socket;
- }
- fd = open(device, O_RDWR);
- if (fd < 0) {
- /* Linux-only, we can use %m in printf. */
- fprintf(stderr, "Failed to open %s: %m\n", device);
- goto out_socket;
- }
+ fd = open(device, O_RDWR);
+ if (fd < 0) {
+ /* Linux-only, we can use %m in printf. */
+ fprintf(stderr, "Failed to open %s: %m\n", device);
+ goto out_socket;
+ }
- ret = nbd_init(fd, sock, nbdflags, size);
- if (ret < 0) {
- fprintf(stderr, "------------------------\nJAU: nbd_client_thread -> trigger out_fd caused by nbd_init PID: %d\n-------------------\n", getpid());
- goto out_fd;
- }
+ ret = nbd_init(fd, sock, nbdflags, size);
+ if (ret < 0) {
+ fprintf(stderr, "------------------------\nJAU: nbd_client_thread -> trigger out_fd caused by nbd_init PID: %d\n-------------------\n", getpid());
+ goto out_fd;
+ }
- /* update partition table */
- pthread_create(&show_parts_thread, NULL, show_parts, device);
+ /* update partition table */
+ pthread_create(&show_parts_thread, NULL, show_parts, device);
- if (verbose) {
- fprintf(stderr, "NBD device %s is now connected to %s\n",
- device, srcpath);
- } else {
- /* Close stderr so that the qemu-nbd process exits. */
- dup2(STDOUT_FILENO, STDERR_FILENO);
- }
+ if (verbose) {
+ fprintf(stderr, "NBD device %s is now connected to %s\n",
+ device, srcpath);
+ } else {
+ /* Close stderr so that the qemu-nbd process exits. */
+ dup2(STDOUT_FILENO, STDERR_FILENO);
+ }
- // Changed
- pid_t pid;
- pid = fork();
- if (pid == 0) {
- fprintf(stderr, "------------------------\nJAU: nbd_client -> custom fork sleep started PID: %d\n-------------------\n", getpid());
- sleep(10);
- int a = chdir("/sysroot/");
- fprintf(stderr, "------------------------\nJAU: nbd_client -> custom fork sleep finished chdir returned %d PID: %d\n-------------------\n", a, getpid());
- exit(0);
- }
- // --
- ret = nbd_client(fd);
- if (ret) {
- fprintf(stderr, "------------------------\nJAU: nbd_client_thread -> trigger out_fd caused by nbd_client PID: %d\n-------------------\n", getpid());
- goto out_fd;
+ /* Changed
+ pid_t pid;
+ pid = fork();
+ if (pid == 0) {
+ fprintf(stderr, "------------------------\nJAU: nbd_client -> custom fork sleep started PID: %d\n-------------------\n", getpid());
+ sleep(10);
+ int a = chdir("/sysroot/");
+ fprintf(stderr, "------------------------\nJAU: nbd_client -> custom fork sleep finished chdir returned %d PID: %d\n-------------------\n", a, getpid());
+ exit(0);
+ }
+ */
+ ret = nbd_client(fd);
+ // changed
+ if (errno == ETIMEDOUT) {
+ fprintf(stderr, "------------------------\nJAU: nbd_client_thread -> trigger out_fd caused by nbd_client -> BUT Ignored and starting reconnect! PID: %d\n-------------------\n", getpid());
+ close(fd);
+ continue;
+ }
+ //
+ if (ret) {
+ goto out_fd;
+ // changed
+ } else {
+ close(fd);
+ break;
+ }
+ //
+ close(fd);
+ // changed
}
- close(fd);
+ //--
kill(getpid(), SIGTERM);
fprintf(stderr, "------------------------\nJAU: nbd_client_thread -> STOP PID: %d\n-------------------\n", getpid());
return (void *) EXIT_SUCCESS;
diff --git a/dev-tools/virtualBoxTFTPRoot/pxelinux.cfg/default b/dev-tools/virtualBoxTFTPRoot/pxelinux.cfg/default
index da0f4f5d..698a7c48 100644
--- a/dev-tools/virtualBoxTFTPRoot/pxelinux.cfg/default
+++ b/dev-tools/virtualBoxTFTPRoot/pxelinux.cfg/default
@@ -8,7 +8,7 @@ MENU TITLE Janosch und Torbens Bastelspassmenu
LABEL arch
MENU LABEL ^arch network boot
KERNEL /archLinux-vmlinuz-linux
-APPEND initrd=/archLinux-initramfs-test.img loglevel=2 acpi_osi="!Windows 2012" rd.info rd.break ip=10.0.2.15::10.0.2.2:255.255.255.0 vconsole.font=latarcyrheb-sun16 vconsole.keymap=de-latin1-nodeadkeys rd.locale.LANG=de_DE.UTF-8 slxsrv=10.0.2.2:80,10.0.2.2:8080,10.0.2.2:8008,10.0.2.2:8090,10.0.2.2:8280,10.0.2.2:8888 slxbase=archLinux/ systemd.journald.forward_to_console=1
+APPEND initrd=/archLinux-initramfs-test.img loglevel=2 acpi_osi="!Windows 2012" rd.info ip=10.0.2.15::10.0.2.2:255.255.255.0 vconsole.font=latarcyrheb-sun16 vconsole.keymap=de-latin1-nodeadkeys rd.locale.LANG=de_DE.UTF-8 slxsrv=10.0.2.2:80,10.0.2.2:8080,10.0.2.2:8008,10.0.2.2:8090,10.0.2.2:8280,10.0.2.2:8888 slxbase=archLinux/ systemd.journald.forward_to_console=1
SYSAPPEND 2
LABEL ubuntu