Skip to content

Fix an opaque I/O error by installing eulas#2903

Merged
mvidner merged 4 commits intoapi-v2from
fix-opaque-io-error-install-eulas
Nov 26, 2025
Merged

Fix an opaque I/O error by installing eulas#2903
mvidner merged 4 commits intoapi-v2from
fix-opaque-io-error-install-eulas

Conversation

@mvidner
Copy link
Copy Markdown
Contributor

@mvidner mvidner commented Nov 21, 2025

Problem

In api-v2, agama-web-server crashes at startup with

Error: I/O error

(tested via /testing_using_container.sh)

Cc @ancorgs @jreidinger

Solution

  • install the files it is looking for (But are they the right files? The dir content looks patchy!)
  • Improve the error message
    • by using fs-err, a NEAT library that provides filenames to ALL such errors (once we use it)

Error: I/O error: failed to read directory /usr/share/agama/eula: No such file or directory (os error 2)

Testing

  • Tested manually
  • There already were unit tests for this, using the files directly from the git tree. Unit but not integration.

Screenshots

No

Documentation

Not crashing is expected

@mvidner mvidner changed the base branch from master to api-v2 November 21, 2025 08:28
@mvidner mvidner force-pushed the fix-opaque-io-error-install-eulas branch 2 times, most recently from 21114ac to 993bcea Compare November 21, 2025 08:33
@jreidinger
Copy link
Copy Markdown
Contributor

@imobachgs even better solution than what we discussed

@mvidner please fix also

#[error("I/O error")]

@mvidner mvidner force-pushed the fix-opaque-io-error-install-eulas branch from 993bcea to b360083 Compare November 21, 2025 08:40
install6 -D -t "${DESTDIR}${unitdir}" "${SRCDIR}"/share/agama-web-server.service

# instal licenses
install6 -D -t "${DESTDIR}${datadir}"/agama/eula/license.final "${SRCDIR}"/share/eula/license.final/*
Copy link
Copy Markdown
Contributor Author

@mvidner mvidner Nov 21, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This does look a bit suspicious, more like testing data than the real thing, but we can improve upon that while we have a not-crashing agama-web-server.

$ ls /usr/share/agama/eula/license.final/
license.es.txt  license.txt  license.zh_CN.txt

@mvidner
Copy link
Copy Markdown
Contributor Author

mvidner commented Nov 24, 2025

@imobachgs says that in the past we had a problem with error messages appearing twice in the error cause chain: #660 , that is a thing to keep an eye out for

But in this case I saw the actual messages in journalctl output, the {0} is needed here.

Fix it by installing some EULA files

In SLE-16 they are also missing but we only get a log error:

agama-web-server[21355]: Could not read the licenses repository: Os { code: 2, kind: NotFound, message: "No such file or directory" }
Before:
> Error: I/O error

After:
> Error: I/O error: No such file or directory (os error 2)

OK, we need another fix to make it useful, fs_err in an upcoming commit
Before:
> Error: I/O error: No such file or directory (os error 2)

After:
> Error: I/O error: failed to read directory `/usr/share/agama/eula`: No such file or directory (os error 2)
@mvidner mvidner force-pushed the fix-opaque-io-error-install-eulas branch from b360083 to b7656a0 Compare November 26, 2025 14:08
@mvidner mvidner merged commit 23c1da0 into api-v2 Nov 26, 2025
16 of 17 checks passed
@mvidner mvidner deleted the fix-opaque-io-error-install-eulas branch November 26, 2025 16:58
imobachgs added a commit that referenced this pull request Jan 10, 2026
Merge the new HTTP API. Each PR has been already reviewed, so it should
be safe to merge it.

* #1829
* #2508
* #2772
* #2826
* #2848
* #2860
* #2863
* #2866
* #2867
* #2869
* #2870
* #2871
* #2872
* #2873
* #2874
* #2875
* #2876
* #2877
* #2880
* #2881
* #2882
* #2884
* #2885
* #2886
* #2891
* #2892
* #2893
* #2894
* #2895
* #2896
* #2897
* #2898
* #2899
* #2900
* #2901
* #2902
* #2903
* #2904
* #2908
* #2909
* #2910
* #2912
* #2913
* #2914
* #2915
* #2916
* #2917
* #2918
* #2920
* #2921
* #2923
* #2924
* #2926
* #2928
* #2929
* #2930
* #2933
* #2934
* #2935
* #2936
* #2938
* #2939
* #2942
* #2943
* #2944
* #2945
* #2946
* #2947
* #2948
* #2950
* #2951
* #2952
* #2954
* #2955
* #2956
* #2957
* #2958
* #2959
* #2960
* #2961
* #2963
* #2964
* #2965
* #2967
* #2968
* #2969
* #2970
* #2971
* #2972
* #2974
* #2975
* #2977
* #2978
* #2980
* #2982
* #2983
* #2984
* #2988
* #2989
* #2991
* #2992
* #2993
* #2994
* #2995
* #2996
* #2997
* #2999
@imobachgs imobachgs mentioned this pull request Mar 17, 2026
imobachgs added a commit that referenced this pull request Mar 17, 2026
Prepare to release version 19.

* #1829
* #2508
* #2772
* #2818
* #2826
* #2848
* #2860
* #2863
* #2864
* #2866
* #2867
* #2869
* #2870
* #2871
* #2872
* #2873
* #2874
* #2875
* #2876
* #2877
* #2880
* #2881
* #2882
* #2884
* #2885
* #2886
* #2891
* #2892
* #2893
* #2894
* #2895
* #2896
* #2897
* #2898
* #2899
* #2900
* #2901
* #2902
* #2903
* #2904
* #2908
* #2909
* #2910
* #2912
* #2913
* #2914
* #2915
* #2916
* #2917
* #2918
* #2920
* #2921
* #2923
* #2924
* #2926
* #2928
* #2929
* #2930
* #2933
* #2934
* #2935
* #2936
* #2937
* #2938
* #2939
* #2942
* #2943
* #2944
* #2945
* #2946
* #2947
* #2948
* #2949
* #2950
* #2951
* #2952
* #2954
* #2955
* #2956
* #2957
* #2958
* #2959
* #2960
* #2961
* #2963
* #2964
* #2965
* #2967
* #2968
* #2969
* #2970
* #2971
* #2972
* #2974
* #2975
* #2977
* #2978
* #2980
* #2981
* #2982
* #2983
* #2984
* #2988
* #2989
* #2990
* #2991
* #2992
* #2993
* #2994
* #2995
* #2996
* #2997
* #2998
* #2999
* #3000
* #3001
* #3002
* #3004
* #3005
* #3006
* #3007
* #3008
* #3009
* #3011
* #3012
* #3013
* #3014
* #3015
* #3016
* #3018
* #3019
* #3020
* #3021
* #3022
* #3023
* #3024
* #3025
* #3026
* #3027
* #3028
* #3029
* #3030
* #3031
* #3033
* #3034
* #3035
* #3036
* #3037
* #3039
* #3040
* #3041
* #3042
* #3043
* #3044
* #3045
* #3046
* #3047
* #3048
* #3049
* #3050
* #3051
* #3052
* #3053
* #3054
* #3055
* #3056
* #3057
* #3058
* #3060
* #3061
* #3062
* #3063
* #3064
* #3065
* #3066
* #3067
* #3068
* #3069
* #3070
* #3071
* #3072
* #3073
* #3074
* #3075
* #3076
* #3077
* #3078
* #3079
* #3086
* #3087
* #3088
* #3089
* #3090
* #3091
* #3092
* #3093
* #3094
* #3095
* #3096
* #3097
* #3098
* #3099
* #3100
* #3101
* #3102
* #3103
* #3104
* #3105
* #3106
* #3107
* #3108
* #3109
* #3110
* #3112
* #3113
* #3114
* #3115
* #3116
* #3117
* #3118
* #3119
* #3120
* #3122
* #3123
* #3124
* #3127
* #3128
* #3129
* #3130
* #3131
* #3133
* #3134
* #3135
* #3136
* #3137
* #3138
* #3139
* #3140
* #3141
* #3142
* #3143
* #3144
* #3145
* #3146
* #3147
* #3148
* #3149
* #3150
* #3151
* #3152
* #3153
* #3154
* #3155
* #3157
* #3158
* #3159
* #3160
* #3161
* #3162
* #3163
* #3164
* #3165
* #3166
* #3167
* #3168
* #3169
* #3170
* #3174
* #3175
* #3176
* #3177
* #3178
* #3179
* #3181
* #3182
* #3184
* #3185
* #3186
* #3188
* #3189
* #3190
* #3191
* #3192
* #3194
* #3195
* #3196
* #3197
* #3198
* #3199
* #3200
* #3201
* #3202
* #3203
* #3205
* #3206
* #3208
* #3209
* #3210
* #3213
* #3214
* #3215
* #3216
* #3217
* #3218
* #3219
* #3220
* #3222
* #3223
* #3224
* #3225
* #3226
* #3227
* #3228
* #3229
* #3230
* #3231
* #3232
* #3233
* #3234
* #3235
* #3236
* #3237
* #3238
* #3239
* #3240
* #3241
* #3242
* #3243
* #3244
* #3246
* #3247
* #3248
* #3250
* #3251
* #3252
* #3253
* #3254
* #3255
* #3256
* #3257
* #3258
* #3259
* #3260
* #3261
* #3262
* #3263
* #3265
* #3266
* #3267
* #3268
* #3269
* #3270
* #3271
* #3272
* #3273
* #3274
* #3275
* #3276
* #3277
* #3278
* #3279
* #3280
* #3281
* #3282
* #3283
* #3284
* #3285
* #3286
* #3287
* #3288
* #3289
* #3290
* #3291
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants