Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux download of sh single file failed #209

Closed
yodatak opened this issue Aug 26, 2023 · 25 comments
Closed

Linux download of sh single file failed #209

yodatak opened this issue Aug 26, 2023 · 25 comments
Labels
🪲 bug Something isn't working 💻 client There are things to do on the client

Comments

@yodatak
Copy link

yodatak commented Aug 26, 2023

Describe the bug
On linux in botle gamevault can't download big file because if failed to calculate and get 500 error

MESSAGE:
Object reference not set to an instance of an object.
INNER_EXCEPTION:Object reference not set to an instance of an object.
STACK_TRACE:
   at MS.Internal.TextFormatting.TextMetrics.FullTextLine.FormatLine(FullTextState fullText, Int32 cpFirst, Int32 lineLength, Int32 formatWidth, Int32 finiteFormatWidth, Int32 paragraphWidth, LineFlags lineFlags, FormattedTextSymbols collapsingSymbol)
   at MS.Internal.TextFormatting.TextMetrics.FullTextLine..ctor(FormatSettings settings, Int32 cpFirst, Int32 lineLength, Int32 paragraphWidth, LineFlags lineFlags)
   at MS.Internal.TextFormatting.TextFormatterImp.FormatLineInternal(TextSource textSource, Int32 firstCharIndex, Int32 lineLength, Double paragraphWidth, TextParagraphProperties paragraphProperties, TextLineBreak previousLineBreak, TextRunCache textRunCache)
   at MS.Internal.TextFormatting.TextFormatterImp.FormatLine(TextSource textSource, Int32 firstCharIndex, Double paragraphWidth, TextParagraphProperties paragraphProperties, TextLineBreak previousLineBreak, TextRunCache textRunCache)
   at System.Windows.Controls.TextBlock.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at MS.Internal.Helper.MeasureElementWithSingleChild(UIElement element, Size constraint)
   at System.Windows.Controls.ContentPresenter.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at System.Windows.Controls.Grid.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at System.Windows.Controls.Control.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at System.Windows.Controls.DockPanel.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at System.Windows.Controls.Grid.MeasureCell(Int32 cell, Boolean forceInfinityV)
   at System.Windows.Controls.Grid.MeasureCellsGroup(Int32 cellsHead, Size referenceSize, Boolean ignoreDesiredSizeU, Boolean forceInfinityV, Boolean& hasDesiredSizeUChanged)
   at System.Windows.Controls.Grid.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at System.Windows.Controls.Decorator.MeasureOverride(Size constraint)
   at System.Windows.Documents.AdornerDecorator.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at System.Windows.Controls.Grid.MeasureOverride(Size constraint)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at System.Windows.Window.MeasureOverrideHelper(Size constraint)
   at System.Windows.Window.MeasureOverride(Size availableSize)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at System.Windows.Interop.HwndSource.SetLayoutSize()
   at System.Windows.Interop.HwndSource.set_RootVisualInternal(Visual value)
   at System.Windows.Interop.HwndSource.set_RootVisual(Visual value)
   at System.Windows.Window.SetRootVisual()
   at System.Windows.Window.SetRootVisualAndUpdateSTC()
   at System.Windows.Window.SetupInitialState(Double requestedTop, Double requestedLeft, Double requestedWidth, Double requestedHeight)
   at System.Windows.Window.CreateSourceWindow(Boolean duringShow)
   at System.Windows.Window.CreateSourceWindowDuringShow()
   at System.Windows.Window.SafeCreateWindowDuringShow()
   at System.Windows.Window.ShowHelper(Object booleanBox)
   at System.Windows.Window.Show()
   at gamevault.App.Application_Startup(Object sender, StartupEventArgs e) in D:\a\gamevault-app\gamevault-app\gamevault\App.xaml.cs:line 95
   at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__128_0(Object state)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

MESSAGE:
Object reference not set to an instance of an object.
INNER_EXCEPTION:
STACK_TRACE:
   at gamevault.UserControls.GameViewUserControl.Download_Click(Object sender, MouseButtonEventArgs e) in D:\a\gamevault-app\gamevault-app\gamevault\UserControls\GameViewUserControl.xaml.cs:line 104
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
   at System.Windows.Input.InputManager.ProcessStagingArea()
   at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
   at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
   at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

To Reproduce
Steps to reproduce the behavior:
1 - Linux bootlde gamevault latest
2- try to download a tar file or xci or .sh

3- if you put the font in folder it crash at start
3- you got an error and it don't restart anymore

Screenshots

Capture d’écran du 2023-08-26 19-30-47
Capture d’écran du 2023-08-26 19-30-06
Capture d’écran du 2023-08-26 19-28-18
Capture d’écran du 2023-08-21 22-48-04

Desktop (please complete the following information):

  • OS: [e.g. iOS] steam os or fedora
  • Version [e.g. 22] Version 1.4.1

server
some log server

On server side error:   ┃ [116]   position: undefined,
2023-08-26T19:55:13.645942948+02:00 error:   ┃ [117]   query: 'INSERT INTO "game"("created_at", "updated_at", "deleted_at", "entity_version", "rawg_id", "title", "rawg_title", "version", "release_date", "rawg_release_date", "cache_date", "file_path", "size", "description", "website_url", "metacritic_rating", "average_playtime", "early_access", "type", "box_image_id", "background_image_id") VALUES (DEFAULT, DEFAULT, DEFAULT, 1, DEFAULT, $1, DEFAULT, DEFAULT, DEFAULT, DEFAULT, DEFAULT, $2, $3, DEFAULT, DEFAULT, DEFAULT, DEFAULT, $4, $5, DEFAULT, DEFAULT) RETURNING "id", "created_at", "updated_at", "deleted_at", "entity_version", "size", "type"',
error:   ┃ [118]   routine: 'ExecConstraints',
2023-08-26T19:55:13.645948486+02:00 error:   ┃ [119]   schema: 'public',
error:   ┃ [120]   severity: 'ERROR',
2023-08-26T19:55:13.645954901+02:00 error:   ┃ [121]   table: 'game',
error:   ┃ [122]   timestamp: '2023-08-26T17:55:13.644Z',
2023-08-26T19:55:13.645960493+02:00 error:   ┃ [123]   where: undefined
error:   ┗ [124] }
2023-08-26T19:55:13.810193534+02:00 ERROR:   ┏ /games/Switch/game (2023).xci : Can not open the file as archive +165ms
2023-08-26T19:55:13.810209275+02:00 ERROR:   ┃ [ 1] [Error fetching Executables List for "/games/Switch/game (2023).xci"]
ERROR:   ┃ [ 2] {
ERROR:   ┃ [ 3]   context: 'FilesService',
2023-08-26T19:55:13.810215599+02:00 ERROR:   ┃ [ 4]   error: Error: /games/Switch/game (2023).xci : Can not open the file as archive
ERROR:   ┃ [ 5]       at Object.fromBuffer (/app/node_modules/.pnpm/node-7z@3.0.0/node_modules/node-7z/src/error.js:30:15)
2023-08-26T19:55:13.810219580+02:00 ERROR:   ┃ [ 6]       at /app/node_modules/.pnpm/node-7z@3.0.0/node_modules/node-7z/src/events.js:25:19
2023-08-26T19:55:13.810227134+02:00 ERROR:   ┃ [ 7]       at Socket.<anonymous> (/app/node_modules/.pnpm/node-7z@3.0.0/node_modules/node-7z/src/lifecycle.js:63:51)
ERROR:   ┃ [ 8]       at Socket.emit (node:events:514:28)
2023-08-26T19:55:13.810231948+02:00 ERROR:   ┃ [ 9]       at addChunk (node:internal/streams/readable:343:12)
2023-08-26T19:55:13.810233899+02:00 ERROR:   ┃ [10]       at readableAddChunk (node:internal/streams/readable:316:9)
2023-08-26T19:55:13.810235839+02:00 ERROR:   ┃ [11]       at Readable.push (node:internal/streams/readable:253:10)
ERROR:   ┃ [12]       at Pipe.onStreamRead (node:internal/stream_base_commons:190:23) {
ERROR:   ┃ [13]     level: 'ERROR',
ERROR:   ┃ [14]     stderr: '\n' +
ERROR:   ┃ [15]       'ERROR: /games/Switch/game (2023).xci : Can not open the file as archive\n' +
ERROR:   ┃ [16]       '\n' +
2023-08-26T19:55:13.810249235+02:00 ERROR:   ┃ [17]       '\n'
ERROR:   ┃ [18]   },
ERROR:   ┃ [19]   stderr: '\n' +
ERROR:   ┃ [20]     'ERROR: /games/Switch/game (2023).xci : Can not open the file as archive\n' +
ERROR:   ┃ [21]     '\n' +
2023-08-26T19:55:13.810266385+02:00 ERROR:   ┃ [22]     '\n',
ERROR:   ┃ [23]   timestamp: '2023-08-26T17:55:13.809Z'
2023-08-26T19:55:13.810271051+02:00 ERROR:   ┗ [24] }
2023-08-26T19:55:13.810301980+02:00 warn:    ┏ Could not detect any executables in archive "/games/Switch/game (2023).xci". Be aware that Game Type Detection does not support nested archives. +1ms
2023-08-26T19:55:13.810306099+02:00 warn:    ┗ [1] { context: 'FilesService', timestamp: '2023-08-26T17:55:13.810Z' }
2023-08-26T19:55:13.810549384+02:00 error:   ┏ Error detecting game type: +0ms
2023-08-26T19:55:13.810553782+02:00 error:   ┃ [1] [Error: /games/Switch/game (2023).xci : Can not open the file as archive]
2023-08-26T19:55:13.810556553+02:00 error:   ┗ [2] { context: 'FilesService', timestamp: '2023-08-26T17:55:13.810Z' }

023-08-26T19:55:13.810266385+02:00 ERROR:   ┃ [22]     '\n',
ERROR:   ┃ [23]   timestamp: '2023-08-26T17:55:13.809Z'
2023-08-26T19:55:13.810271051+02:00 ERROR:   ┗ [24] }
2023-08-26T19:55:13.810301980+02:00 warn:    ┏ Could not detect any executables in archive "/games/Switch/game (2023).xci". Be aware that Game Type Detection does not support nested archives. +1ms
2023-08-26T19:55:13.810306099+02:00 warn:    ┗ [1] { context: 'FilesService', timestamp: '2023-08-26T17:55:13.810Z' }
2023-08-26T19:55:13.810549384+02:00 error:   ┏ Error detecting game type: +0ms
2023-08-26T19:55:13.810553782+02:00 error:   ┃ [1] [Error: /games/Switch/game (2023).xci : Can not open the file as archive]
2023-08-26T19:55:13.810556553+02:00 error:   ┗ [2] { context: 'FilesService', timestamp: '2023-08-26T17:55:13.810Z' }
warn:    ┏ Could not detect any executables in archive "/games/Uncharted Legacy of Thieves Collection/Uncharted 4 A Thief's End(2016).sh.tar". Be aware that Game Type Detection does not support nested archives. +9ms

My gamevault helm install via flux

---
apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
  name: gamevault-backend
  namespace: games
spec:
  chart:
    spec:
      chart: gamevault-backend
      interval: 15m
      reconcileStrategy: ChartVersion
      sourceRef:
        kind: HelmRepository
        name: truecharts
        namespace: flux-system
      version: 1.1.1
  interval: 5m
  values:

    image:
      repository: phalcode/gamevault-backend
      pullPolicy: IfNotPresent
      tag: 4.0.1@sha256:e74f20e37c1ae55827623b9135a2c0cd80b7b44b17179d59de3b153c58979abb

    operator:
      register: false
      verify:
        enabled: false
        failOnError: false

    ingress:
      main:
        autoLink: true
        enabled: true
        ingressClassName: traefik
        enableFixedMiddlewares: false
        hosts:
          - host: games.XXXXX
            paths:
              - path: /
                pathType: Prefix
        tls:
          - hosts:
              - games.XXXX




    persistence:
      logs:
        enabled: true
        hostPath: /mnt/disk/Jeux/gamevault/logs
        hostPathType: Directory
        mountPath: /logs
        targetSelectAll: true
        type: hostPath
      images:
        enabled: true
        hostPath: /mnt/disk/Jeux/gamevault/images
        hostPathType: Directory
        mountPath: /images
        targetSelectAll: true
        type: hostPath
      games:
        enabled: true
        mountPath: /games
        hostPath: /mnt/disk/Jeux/gamevault/games
        hostPathType: Directory
        targetSelectAll: true
        type: hostPath




    cnpg:
      main:
        enabled: true
        user: gamevault
        database: gamevault


    gamevault:
      server:
        admin_user: XXXXX
        admin_password: XXXX
        registration_disabled: false
        account_activation_disabled: true
        allowed_origins:
          - "*"
        log_level: info
      games:
        index_interval_in_minutes: 5
        search_recursive: true
        file_formats:
          - ".7z"
          - ".sh"
          - ".tar"
          - ".tar.gz"
          - ".xci"
          - ".ncp"
      images:
        gc_keep_days: 30
        gc_interval_minutes: 60
      rawg:
        api_url: https://api.rawg.io/api
        api_cache_days: 7
        api_key: "XXXXXXX"
@yodatak yodatak added 💻 client There are things to do on the client 🪲 bug Something isn't working labels Aug 26, 2023
@yodatak
Copy link
Author

yodatak commented Aug 26, 2023

I can also provide the bootle extract and my server if need in private

@Alfagun74
Copy link
Contributor

Alfagun74 commented Aug 26, 2023

Regarding the server logs: .xci is not a supported archive format, you are forcing it, so the errors are normal. If you want them to disappear in the log, tar the xci games.

@yodatak
Copy link
Author

yodatak commented Aug 26, 2023

True but .tar and .sh are supported but don't work

@Alfagun74
Copy link
Contributor

Alfagun74 commented Aug 26, 2023

yeah i read, i just want to make sure its not a serverside issue, do you have any server error logs for downloading tars? The 500 Usually means its server side.

@Alfagun74
Copy link
Contributor

and .7z work for you for some reason?

@Alfagun74
Copy link
Contributor

Does Download not work at all or does extract not work? Whats the exact way to reproduce it?

@yodatak
Copy link
Author

yodatak commented Aug 28, 2023

I try to make a way to reproduce and produce server logs.

The 7z file that contain Windows portable game work
And. Sh game in 7z works too but not uncompressed. Sh or compressed.. Sh I can provides some file to help to debug and add it to non regression test maybe? With GPL games?

@yodatak
Copy link
Author

yodatak commented Aug 28, 2023

Not really a game but a. Sh https://github.com/phyver/GameShell

@yodatak
Copy link
Author

yodatak commented Aug 28, 2023

I try today with https://supertuxkart.itch.io/supertuxkart
And I will tell you the result

@yodatak
Copy link
Author

yodatak commented Aug 28, 2023

Ok so i restard my server and know tar zip and 7z work with config change
but single .sh file not

my config of helm changes

    gamevault:
      server:
        admin_user: XXX
        admin_password: XXX
        registration_disabled: false
        account_activation_disabled: true
        allowed_origins:
          - "*"
        log_level: info
      games:
        index_interval_in_minutes: 5
        search_recursive: true
        file_formats:
          - ".7z"
          - ".sh"
          - ".tar"
          - ".zip"
          - ".xz"
          - ".gz"  

The client:
image
and i got a 49,3 mo tar file corruped in my client folder

The server log


info:    ┏ [28/Aug/2023:19:47:20 +0000] yodatak @ XXXX - GET /api/v1/games/12587 -> 200 - 77.684 ms - 731 - 'GameVault/1.4.1'
 +1m
info:    ┗ [1] { context: 'Morgan', timestamp: '2023-08-28T19:47:20.035Z' }
info:    ┏ [28/Aug/2023:19:47:20 +0000] yodatak @ XXX - GET /api/v1/progresses/user/1/game/12587 -> 200 - 58.604 ms - - - 'GameVault/1.4.1'
 +70ms
info:    ┗ [1] { context: 'Morgan', timestamp: '2023-08-28T19:47:20.105Z' }
info:    ┏ [28/Aug/2023:19:47:23 +0000] yodatak @ XXXX - GET /api/v1/games/12587/download -> 200 - 56.008 ms - - - 'GameVault/1.4.1'
2023-08-28T21:47:23.136340844+02:00  +2s
info:    ┗ [1] { context: 'Morgan', timestamp: '2023-08-28T19:47:23.132Z' }
2023-08-28T21:47:23.136347912+02:00 error:   ┏ Premature close +2ms
2023-08-28T21:47:23.136350625+02:00 error:   ┃ [1] Error [ERR_STREAM_PREMATURE_CLOSE]: Premature close
error:   ┃ [2]     at new NodeError (node:internal/errors:405:5)
2023-08-28T21:47:23.136356128+02:00 error:   ┃ [3]     at ServerResponse.onclose (node:internal/streams/end-of-stream:159:30)
2023-08-28T21:47:23.136358583+02:00 error:   ┃ [4]     at ServerResponse.emit (node:events:526:35)
error:   ┃ [5]     at emitCloseNT (node:_http_server:1012:10)
2023-08-28T21:47:23.136363468+02:00 error:   ┃ [6]     at Socket.onServerResponseClose (node:_http_server:278:5)
error:   ┃ [7]     at Socket.emit (node:events:526:35)
2023-08-28T21:47:23.136368494+02:00 error:   ┃ [8]     at TCP.<anonymous> (node:net:337:12)
error:   ┗ [9] { context: 'ExpressAdapter', timestamp: '2023-08-28T19:47:23.134Z' }

@yodatak yodatak changed the title Linux download of file other than 7z don't work Linux download of sh single file Aug 28, 2023
@yodatak yodatak changed the title Linux download of sh single file Linux download of sh single file failed Aug 28, 2023
@yodatak
Copy link
Author

yodatak commented Sep 15, 2023

I reinstall the server and with latest gamevault client too and i got this error


2023-09-15T21:28:10.258591646+02:00 info:    ┗ [1] { context: 'Morgan', timestamp: '2023-09-15T19:28:10.258Z' }
info:    ┏ [15/Sep/2023:19:28:17 +0000] yodatak @ 10.42.0.1 - GET /api/v1/games/7/download -> 200 - 62.207 ms - - - 'GameVault/1.5.0'
2023-09-15T21:28:17.162172101+02:00  +2s
2023-09-15T21:28:17.162178224+02:00 info:    ┗ [1] { context: 'Morgan', timestamp: '2023-09-15T19:28:17.161Z' }
error:   ┏ Premature close +2ms
error:   ┃ [1] Error [ERR_STREAM_PREMATURE_CLOSE]: Premature close
2023-09-15T21:28:17.164165537+02:00 error:   ┃ [2]     at new NodeError (node:internal/errors:405:5)
2023-09-15T21:28:17.164168235+02:00 error:   ┃ [3]     at ServerResponse.onclose (node:internal/streams/end-of-stream:159:30)
2023-09-15T21:28:17.164170921+02:00 error:   ┃ [4]     at ServerResponse.emit (node:events:526:35)
error:   ┃ [5]     at emitCloseNT (node:_http_server:1023:10)
2023-09-15T21:28:17.164176916+02:00 error:   ┃ [6]     at Socket.onServerResponseClose (node:_http_server:278:5)
error:   ┃ [7]     at Socket.emit (node:events:526:35)
2023-09-15T21:28:17.164185642+02:00 error:   ┃ [8]     at TCP.<anonymous> (node:net:337:12)
error:   ┗ [9] { context: 'ExpressAdapter', timestamp: '2023-09-15T19:28:17.163Z' }
info:    ┏ [15/Sep/2023:19:28:21 +0000] yodatak @ 10.42.0.1 - GET /api/v1/games/7/download -> 200 - 65.525 ms - - - 'GameVault/1.5.0'
2023-09-15T21:28:21.097533003+02:00  +2s
2023-09-15T21:28:21.097537325+02:00 info:    ┗ [1] { context: 'Morgan', timestamp: '2023-09-15T19:28:21.096Z' }
error:   ┏ Premature close +1ms
2023-09-15T21:28:21.099305388+02:00 error:   ┃ [1] Error [ERR_STREAM_PREMATURE_CLOSE]: Premature close
2023-09-15T21:28:21.099308096+02:00 error:   ┃ [2]     at new NodeError (node:internal/errors:405:5)
error:   ┃ [3]     at ServerResponse.onclose (node:internal/streams/end-of-stream:159:30)
2023-09-15T21:28:21.099312206+02:00 error:   ┃ [4]     at ServerResponse.emit (node:events:526:35)
2023-09-15T21:28:21.099314178+02:00 error:   ┃ [5]     at emitCloseNT (node:_http_server:1023:10)
2023-09-15T21:28:21.099316707+02:00 error:   ┃ [6]     at Socket.onServerResponseClose (node:_http_server:278:5)
error:   ┃ [7]     at Socket.emit (node:events:526:35)
2023-09-15T21:28:21.099320652+02:00 error:   ┃ [8]     at TCP.<anonymous> (node:net:337:12)
error:   ┗ [9] { context: 'ExpressAdapter', timestamp: '2023-09-15T19:28:21.098Z' }
{
	"id": 7,
	"created_at": "2023-09-15T19:24:01.251Z",
	"updated_at": "2023-09-15T19:30:00.706Z",
	"deleted_at": null,
	"entity_version": 4,
	"rawg_id": null,
	"title": "XXXXXXX",
	"rawg_title": null,
	"version": null,
	"release_date": null,
	"rawg_release_date": null,
	"cache_date": null,
	"file_path": "/games/XXXX X XXXX XXXX Game.sh",
	"size": "1889174654",
	"description": null,
	"box_image": {
		"id": 7,
		"created_at": "2023-09-15T19:24:37.641Z",
		"updated_at": "2023-09-15T19:24:37.641Z",
		"deleted_at": null,
		"entity_version": 1,
		"source": "https://www.metacritic.com/a/img/catalog/provider/6/12/6-1-854726-52.jpg",
		"path": "/images/25eb2b33-f81d-494f-892d-8332a1a2be4f.jpeg",
		"mediaType": null
	},
	"background_image": null,
	"website_url": null,
	"metacritic_rating": null,
	"average_playtime": null,
	"early_access": false,
	"type": "UNDETECTABLE",
	"progresses": [],
	"publishers": [],
	"developers": [],
	"stores": [],
	"tags": [],
	"genres": []
}

when i do a curl from the api i download the game

curl --request GET \                                                                                                                                                                                                                                                                       ⬢ [fedora-toolbox:38] 
                 --url https://XXXXXXXXXXXX/api/v1/games/7/download \
                 --header 'Authorization: Basic XXXXXg==' --output  "/games/XXXX X XXXX XXXX Game.tar"

and the game works so i think its a client issue and not a server issue

@yodatak
Copy link
Author

yodatak commented Sep 15, 2023

Same think if i add a (2023)

{
	"id": 84,
	"created_at": "2023-09-15T19:45:00.426Z",
	"updated_at": "2023-09-15T19:45:15.491Z",
	"deleted_at": null,
	"entity_version": 2,
	"rawg_id": null,
	"title": "Chef A Restaurant Tycoon Game",
	"rawg_title": null,
	"version": null,
	"release_date": "2023-01-01T00:00:00.000Z",
	"rawg_release_date": null,
	"cache_date": null,
	"file_path": "/games/Chef A Restaurant Tycoon Game (2023).sh",
	"size": "1889174654",
	"description": null,
	"box_image": {
		"id": 145,
		"created_at": "2023-09-15T19:45:15.481Z",
		"updated_at": "2023-09-15T19:45:15.481Z",
		"deleted_at": null,
		"entity_version": 1,
		"source": "https://www.metacritic.com/a/img/catalog/provider/6/12/6-1-854726-52.jpg",
		"path": "/images/5325097c-e0a5-482b-9987-ca3c8e1930a5.jpeg",
		"mediaType": null
	},
	"background_image": null,
	"website_url": null,
	"metacritic_rating": null,
	"average_playtime": null,
	"early_access": false,
	"type": "UNDETECTABLE",
	"progresses": [],
	"publishers": [],
	"developers": [],
	"stores": [],
	"tags": [],
	"genres": []
}

same with tar file

{
	"id": 4,
	"created_at": "2023-09-15T19:24:00.971Z",
	"updated_at": "2023-09-15T19:24:32.156Z",
	"deleted_at": null,
	"entity_version": 2,
	"rawg_id": null,
	"title": "XXXXX .sh",
	"rawg_title": null,
	"version": null,
	"release_date": "2022-01-01T00:00:00.000Z",
	"rawg_release_date": null,
	"cache_date": null,
	"file_path": "/games/XXXX (2022).sh.tar",
	"size": "416112640",
	"description": null,
	"box_image": {
		"id": 4,
		"created_at": "2023-09-15T19:24:32.149Z",
		"updated_at": "2023-09-15T19:24:32.149Z",
		"deleted_at": null,
		"entity_version": 1,
		"source": "https://cdn.cdkeys.com/700x700/media/catalog/product/b/r/broforce_pc_.jpg",
		"path": "/images/e9fb5fa5-36f0-45b1-918f-da38eef1fa1c.jpeg",
		"mediaType": null
	},
	"background_image": null,
	"website_url": null,
	"metacritic_rating": null,
	"average_playtime": null,
	"early_access": false,
	"type": "UNDETECTABLE",
	"progresses": [],
	"publishers": [],
	"developers": [],
	"stores": [],
	"tags": [],
	"genres": []
}

it work with windows portable game and

{
	"id": 27,
	"created_at": "2023-09-15T19:24:02.496Z",
	"updated_at": "2023-09-15T19:24:02.496Z",
	"deleted_at": null,
	"entity_version": 1,
	"rawg_id": null,
	"title": "XXXXX",
	"rawg_title": null,
	"version": null,
	"release_date": "2022-01-01T00:00:00.000Z",
	"rawg_release_date": null,
	"cache_date": null,
	"file_path": "/games/XXXX (2022).7z",
	"size": "22803244",
	"description": null,
	"box_image": {
		"id": 35,
		"created_at": "2023-09-15T19:25:27.979Z",
		"updated_at": "2023-09-15T19:25:27.979Z",
		"deleted_at": null,
		"entity_version": 1,
		"source": "https://cdn2.steamgriddb.com/file/sgdb-cdn/thumb/83a51a02ec406357ff3bb54dd0937f6e.jpg",
		"path": "/images/680cbfe4-fd41-4433-a703-556138d98f4b.jpeg",
		"mediaType": null
	},
	"background_image": null,
	"website_url": null,
	"metacritic_rating": null,
	"average_playtime": null,
	"early_access": false,
	"type": "WINDOWS_PORTABLE",
	"progresses": [],
	"publishers": [],
	"developers": [],
	"stores": [],
	"tags": [],
	"genres": []
}

It works with .sh and 7z file

{
"id": 2,
"created_at": "2023-09-15T19:24:00.286Z",
"updated_at": "2023-09-15T19:24:25.825Z",
"deleted_at": null,
"entity_version": 2,
"rawg_id": null,
"title": "XXXXXX .sh",
"rawg_title": null,
"version": null,
"release_date": "2014-01-01T00:00:00.000Z",
"rawg_release_date": null,
"cache_date": null,
"file_path": "/games/XXXXX (2014).sh.7z",
"size": "1916924384",
"description": null,
"box_image": {
"id": 2,
"created_at": "2023-09-15T19:24:25.813Z",
"updated_at": "2023-09-15T19:24:25.813Z",
"deleted_at": null,
"entity_version": 1,
"source": "https://images.launchbox-app.com/234443bc-eb45-4ca7-91c4-0da4c6015176.png",
"path": "/images/c0c548fd-e4fe-4322-989d-1deed61f94f1.png",
"mediaType": null
},
"background_image": null,
"website_url": null,
"metacritic_rating": null,
"average_playtime": null,
"early_access": false,
"type": "UNDETECTABLE",
"progresses": [],
"publishers": [],
"developers": [],
"stores": [],
"tags": [],
"genres": []
}

@yodatak
Copy link
Author

yodatak commented Sep 15, 2023

I can give acces to my server if needed

@yodatak
Copy link
Author

yodatak commented Sep 15, 2023

Maybe its from mime type of the .sh i got that are
file -i XXX.sh: application/octet-stream; charset=binary
a .sh script without any game its
update-wordpress.sh: text/x-shellscript; charset=us-ascii

maybe its this part
https://github.com/Phalcode/gamevault-app/blob/c7c97c415f499bcc64691ca0398d446b30737e4f/gamevault/Helper/MimeTypeHelper.cs#L407C1-L407C37

what do you think ( any way to have a debug.exe file of gamevault to debug ? @Yelo420

@Yelo420
Copy link
Contributor

Yelo420 commented Sep 16, 2023

The mime Type helper is currently only used when uploading images (as "MultipartFormDataContent"). In future updates it will also be used when you can upload games directly from client.

The downloader gets all the info about the file it should download from the request header (if the server sends it). If not available it takes the file path property from the game object as fallback.

I think the problem is that the fallback doesn't work either.
But this would have to be looked at more closely.

For debugging you could build the debug build. It should spit out all necessary debug files (but don't know to what extent this is possible/practical on Linux/bottles).

Otherwise you could provide me with a severaccount as suggested above and I'll have a look at it as soon as I have time. :)

@Alfagun74
Copy link
Contributor

@yodatak Just mail us the server address and user & password for an admin account to contact@phalco.de

@Yelo420
Copy link
Contributor

Yelo420 commented Sep 16, 2023

Alternatively you can dm us on Discord

@yodatak
Copy link
Author

yodatak commented Sep 17, 2023

i cannot compile on linux this app that why i ask thanks for your help !

@Alfagun74
Copy link
Contributor

we are currently looking into it via your server. we will come back to you asap

@Alfagun74
Copy link
Contributor

btw @yodatak the app is a .net 6 app which you can compile on linux using:
dotnet build gamevault.sln --configuration Release

@Alfagun74
Copy link
Contributor

@yodatak could you please try the latest phalcode/gamevault-backend:unstable image and tell me if this solves the issue for you?

@yodatak
Copy link
Author

yodatak commented Sep 18, 2023

Thanks i try this image and i got the same error

image:
  repository: phalcode/gamevault-backend
  pullPolicy: IfNotPresent
  tag: unstable@sha256:a8309a615d3d0c50aed4bfcbaf55c7a786814e931d7989392d66c90634a3aaba

@yodatak
Copy link
Author

yodatak commented Sep 18, 2023

btw @yodatak the app is a .net 6 app which you can compile on linux using: dotnet build gamevault.sln --configuration Release

I cannot compile on linux sorry for french part ;)

Determining projects to restore...
/usr/lib64/dotnet/sdk/6.0.121/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(90,5): error NETSDK1100: vous devez disposer de Windows pour générer des applications de bureau Windows. [/var/home/yodatak/Projets/public/gamevault-app/gamevault/gamevault.csproj]

ÉCHEC de la build.

/usr/lib64/dotnet/sdk/6.0.121/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(90,5): error NETSDK1100: vous devez disposer de Windows pour générer des applications de bureau Windows. [/var/home/yodatak/Projets/public/gamevault-app/gamevault/gamevault.csproj]
0 Avertissement(s)
1 Erreur(s)

I got the same issue even in activating true
dotnet/docs#30076
nicko88/HTFanControl#19

@Alfagun74
Copy link
Contributor

Thank you, we are currently analyzing the issue further, and we can already reproduce it.

@Alfagun74
Copy link
Contributor

This should be fixed in Backend v6 and Client v1.6. Please also name your files accordingly: https://gamevau.lt/docs/server-docs/structure

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🪲 bug Something isn't working 💻 client There are things to do on the client
Projects
Archived in project
Development

No branches or pull requests

3 participants