Skip to content

glob in 'exclude' field causes obs_scm to fail at source service time #518

@bluca

Description

@bluca

Minimal repro:

<services>
  <service name="obs_scm">
    <param name="scm">git</param>
    <param name="url">https://salsa.debian.org/systemd-team/mkosi.git</param>
    <param name="revision">debian/sid</param>
    <param name="exclude">*/format</param>
  </service>
</services>

The exclude parameter causes an error at source service run time:

Files could not be expanded: service error: 2025-03-27 12:54:06,798 Doing cleanup [less info](javascript:void(0))
service obs_scm failed:
reading /usr/lib/obs/server/bsconfig.obs-service.obsservice.opensuse.org...
reading /usr/lib/obs/server/bsconfig.obs-service.obsservice.opensuse.org...
reading /usr/lib/obs/server/bsconfig.obs-service.obsservice.opensuse.org...
reading /usr/lib/obs/server/bsconfig.obs-service.obsservice.opensuse.org...
reading /usr/lib/obs/server/bsconfig.obs-service.obsservice.opensuse.org...
reading /usr/lib/obs/server/bsconfig.obs-service.obsservice.opensuse.org...
reading /usr/lib/obs/server/bsconfig.obs-service.obsservice.opensuse.org...
reading /usr/lib/obs/server/bsconfig.obs-service.obsservice.opensuse.org...
Running /usr/lib/obs/service//obs_scm --scm git --url https://salsa.debian.org/systemd-team/mkosi.git --revision debian/sid --exclude */format --outdir /var/cache/obs/sZ8xxdiLsF35/out
2025-03-27 12:53:59,618 Checking .... en_US.utf8
2025-03-27 12:53:59,619 Using locale: en_US.utf8
2025-03-27 12:53:59,623 REPOCACHE: /var/cache/obs/sZ8xxdiLsF35/scm-cache
2025-03-27 12:53:59,632 CACHEDIR: '/var/cache/obs/sZ8xxdiLsF35/scm-cache/14da6f4e5c892cf6f6da15a77cf70ac998ef6e79dc03e1f355702d2da30c655e'
2025-03-27 12:53:59,632 SCM: 'git'
2025-03-27 12:53:59,632 Stripping 'git' extension from '/systemd-team/mkosi.git'
2025-03-27 12:53:59,632 - New url_path: '/systemd-team/mkosi'
2025-03-27 12:53:59,632 - SUBDIR:
2025-03-27 12:53:59,633 NO SUBDIR FOUND - USING PARTIAL CLONE
2025-03-27 12:53:59,633 [_calc_dir_to_clone_to] CLONE_DIR: /var/cache/obs/sZ8xxdiLsF35/scm-cache/14da6f4e5c892cf6f6da15a77cf70ac998ef6e79dc03e1f355702d2da30c655e-pc/mkosi
2025-03-27 12:53:59,633 REPOCACHEDIR = '/var/cache/obs/sZ8xxdiLsF35/scm-cache/14da6f4e5c892cf6f6da15a77cf70ac998ef6e79dc03e1f355702d2da30c655e-pc'
2025-03-27 12:53:59,633 Using lockfile: /var/cache/obs/sZ8xxdiLsF35/scm-cache/14da6f4e5c892cf6f6da15a77cf70ac998ef6e79dc03e1f355702d2da30c655e-pc/mkosi/../.lock
2025-03-27 12:53:59,633 [fetch_upstream] Initial checkout/clone to directory: '/var/cache/obs/sZ8xxdiLsF35/scm-cache/14da6f4e5c892cf6f6da15a77cf70ac998ef6e79dc03e1f355702d2da30c655e-pc/mkosi'
2025-03-27 12:53:59,633 COMMAND: ['git', 'clone', '--filter=tree:0', 'https://salsa.debian.org/systemd-team/mkosi.git', '/var/cache/obs/sZ8xxdiLsF35/scm-cache/14da6f4e5c892cf6f6da15a77cf70ac998ef6e79dc03e1f355702d2da30c655e-pc/mkosi']
2025-03-27 12:54:05,384 RESULT(0): "Cloning into '/var/cache/obs/sZ8xxdiLsF35/scm-cache/14da6f4e5c892cf6f6da15a77cf70ac998ef6e79dc03e1f355702d2da30c655e-pc/mkosi'...\nUpdating files: 0% (2/245)\rUpdating files: 1% (3/245)\rUpdating files: 2% (5/245)\rUpdating files: 3% (8/245)\rUpdating files: 4% (10/245)\rUpdating files: 5% (13/245)\rUpdating files: 6% (15/245)\rUpdating files: 7% (18/245)\rUpdating files: 8% (20/245)\rUpdating files: 9% (23/245)\rUpdating files: 10% (25/245)\rUpdating files: 11% (27/245)\rUpdating files: 12% (30/245)\rUpdating files: 13% (32/245)\rUpdating files: 14% (35/245)\rUpdating files: 15% (37/245)\rUpdating files: 16% (40/245)\rUpdating files: 17% (42/245)\rUpdating files: 18% (45/245)\rUpdating files: 19% (47/245)\rUpdating files: 20% (49/245)\rUpdating files: 21% (52/245)\rUpdating files: 22% (54/245)\rUpdating files: 23% (57/245)\rUpdating files: 24% (59/245)\rUpdating files: 25% (62/245)\rUpdating files: 26% (64/245)\rUpdating files: 27% (67/245)\rUpdating files: 28% (69/245)\rUpdating files: 29% (72/245)\rUpdating files: 30% (74/245)\rUpdating files: 31% (76/245)\rUpdating files: 32% (79/245)\rUpdating files: 33% (81/245)\rUpdating files: 34% (84/245)\rUpdating files: 35% (86/245)\rUpdating files: 36% (89/245)\rUpdating files: 37% (91/245)\rUpdating files: 38% (94/245)\rUpdating files: 39% (96/245)\rUpdating files: 40% (98/245)\rUpdating files: 41% (101/245)\rUpdating files: 42% (103/245)\rUpdating files: 43% (106/245)\rUpdating files: 44% (108/245)\rUpdating files: 45% (111/245)\rUpdating files: 46% (113/245)\rUpdating files: 47% (116/245)\rUpdating files: 48% (118/245)\rUpdating files: 49% (121/245)\rUpdating files: 50% (123/245)\rUpdating files: 51% (125/245)\rUpdating files: 52% (128/245)\rUpdating files: 53% (130/245)\rUpdating files: 54% (133/245)\rUpdating files: 55% (135/245)\rUpdating files: 56% (138/245)\rUpdating files: 57% (140/245)\rUpdating files: 58% (143/245)\rUpdating files: 59% (145/245)\rUpdating files: 60% (147/245)\rUpdating files: 61% (150/245)\rUpdating files: 62% (152/245)\rUpdating files: 63% (155/245)\rUpdating files: 64% (157/245)\rUpdating files: 65% (160/245)\rUpdating files: 66% (162/245)\rUpdating files: 67% (165/245)\rUpdating files: 68% (167/245)\rUpdating files: 69% (170/245)\rUpdating files: 70% (172/245)\rUpdating files: 71% (174/245)\rUpdating files: 72% (177/245)\rUpdating files: 73% (179/245)\rUpdating files: 74% (182/245)\rUpdating files: 75% (184/245)\rUpdating files: 76% (187/245)\rUpdating files: 77% (189/245)\rUpdating files: 78% (192/245)\rUpdating files: 79% (194/245)\rUpdating files: 80% (196/245)\rUpdating files: 81% (199/245)\rUpdating files: 82% (201/245)\rUpdating files: 83% (204/245)\rUpdating files: 84% (206/245)\rUpdating files: 85% (209/245)\rUpdating files: 86% (211/245)\rUpdating files: 87% (214/245)\rUpdating files: 88% (216/245)\rUpdating files: 89% (219/245)\rUpdating files: 90% (221/245)\rUpdating files: 91% (223/245)\rUpdating files: 92% (226/245)\rUpdating files: 93% (228/245)\rUpdating files: 94% (231/245)\rUpdating files: 95% (233/245)\rUpdating files: 96% (236/245)\rUpdating files: 97% (238/245)\rUpdating files: 98% (241/245)\rUpdating files: 99% (243/245)\rUpdating files: 100% (245/245)\rUpdating files: 100% (245/245), done.\n"
2025-03-27 12:54:05,384 COMMAND: ['git', 'config', '--local', 'extensions.partialClone', 'origin']
2025-03-27 12:54:05,389 RESULT(0): ''
2025-03-27 12:54:05,389 COMMAND: ['git', 'rev-parse', '--verify', '--quiet', 'debian/sid']
2025-03-27 12:54:05,395 RESULT(0): '62d8b418d58f865dfe9867abddc6831e293c13fc\n'
2025-03-27 12:54:05,395 COMMAND: ['git', 'clone', '--filter=tree:0', '--no-checkout', '--reference', '/var/cache/obs/sZ8xxdiLsF35/scm-cache/14da6f4e5c892cf6f6da15a77cf70ac998ef6e79dc03e1f355702d2da30c655e-pc/mkosi', 'https://salsa.debian.org/systemd-team/mkosi.git', '/var/cache/obs/sZ8xxdiLsF35/out/tmppwm3kymw/mkosi']
2025-03-27 12:54:06,594 RESULT(0): "Cloning into '/var/cache/obs/sZ8xxdiLsF35/out/tmppwm3kymw/mkosi'...\n"
2025-03-27 12:54:06,594 COMMAND: ['git', 'config', '--local', 'extensions.partialClone', 'origin']
2025-03-27 12:54:06,599 RESULT(0): ''
2025-03-27 12:54:06,599 COMMAND: ['git', 'rev-parse', '--verify', '--quiet', 'debian/sid']
2025-03-27 12:54:06,604 RESULT(0): '62d8b418d58f865dfe9867abddc6831e293c13fc\n'
2025-03-27 12:54:06,604 [switch_revision] Starting ...
2025-03-27 12:54:06,604 COMMAND: ['git', 'reset', '--hard', 'debian/sid']
2025-03-27 12:54:06,626 RESULT(0): 'HEAD is now at 62d8b41 Update changelog for 25.3-6 release\n'
2025-03-27 12:54:06,626 COMMAND: ['git', 'submodule', 'update', '--init', '--recursive']
2025-03-27 12:54:06,699 RESULT(0): ''
2025-03-27 12:54:06,699 Unlocking cache: /var/cache/obs/sZ8xxdiLsF35/scm-cache/14da6f4e5c892cf6f6da15a77cf70ac998ef6e79dc03e1f355702d2da30c655e-pc/.lock
2025-03-27 12:54:06,700 COMMAND: ['git', 'describe', '--tags', '--abbrev=0']
2025-03-27 12:54:06,704 RESULT(0): 'debian/25.3-6\n'
2025-03-27 12:54:06,704 COMMAND: ['git', 'log', '-n1', '--date=format:%Y%m%d', '--no-show-signature', '--pretty=format:%ct.%h', '--source', 'debian/sid']
2025-03-27 12:54:06,708 RESULT(0): '1742138083.62d8b41'
2025-03-27 12:54:06,708 VERSION(auto): 1742138083.62d8b41
2025-03-27 12:54:06,709 VERSION(auto): 1742138083.62d8b41
2025-03-27 12:54:06,709 DST: mkosi-1742138083.62d8b41
2025-03-27 12:54:06,709 copying tree: '/var/cache/obs/sZ8xxdiLsF35/out/tmppwm3kymw/mkosi/' to '/var/cache/obs/sZ8xxdiLsF35/out/mkosi-1742138083.62d8b41'
2025-03-27 12:54:06,751 COMMAND: ['git', 'rev-parse', 'HEAD']
2025-03-27 12:54:06,756 RESULT(0): '62d8b418d58f865dfe9867abddc6831e293c13fc\n'
2025-03-27 12:54:06,768 COMMAND: ['git', 'log', '-n1', '--date=format:%Y%m%d', '--no-show-signature', '--pretty=format:%ct', '--source', 'debian/sid']
2025-03-27 12:54:06,773 RESULT(0): '1742138083'
2025-03-27 12:54:06,774 COMMIT TIMESTAMP: 1742138083 (2025-03-16 15:14:43)
Traceback (most recent call last):
File "/usr/lib/obs/service//obs_scm", line 30, in
main()
File "/usr/lib/obs/service//obs_scm", line 26, in main
TarSCM.run()
File "/usr/lib/obs/service/TarSCM/__init__.py", line 39, in run
task_list.process_list()
File "/usr/lib/obs/service/TarSCM/tasks.py", line 132, in process_list
self.process_single_task(task)
File "/usr/lib/obs/service/TarSCM/tasks.py", line 258, in process_single_task
cli = args
File "/usr/lib/obs/service/TarSCM/archive.py", line 124, in create_archive
for name in self.filter_files(filelist, topdir, args):
File "/usr/lib/obs/service/TarSCM/archive.py", line 77, in filter_files
files = [f for f in files if not re.match(excludes, f)]
File "/usr/lib/obs/service/TarSCM/archive.py", line 77, in
files = [f for f in files if not re.match(excludes, f)]
File "/usr/lib64/python3.6/re.py", line 172, in match
return _compile(pattern, flags).match(string)
File "/usr/lib64/python3.6/re.py", line 301, in _compile
p = sre_compile.compile(pattern, flags)
File "/usr/lib64/python3.6/sre_compile.py", line 562, in compile
p = sre_parse.parse(p, flags)
File "/usr/lib64/python3.6/sre_parse.py", line 855, in parse
p = _parse_sub(source, pattern, flags & SRE_FLAG_VERBOSE, 0)
File "/usr/lib64/python3.6/sre_parse.py", line 416, in _parse_sub
not nested and not items))
File "/usr/lib64/python3.6/sre_parse.py", line 765, in _parse
p = _parse_sub(source, state, sub_verbose, nested + 1)
File "/usr/lib64/python3.6/sre_parse.py", line 416, in _parse_sub
not nested and not items))
File "/usr/lib64/python3.6/sre_parse.py", line 616, in _parse
source.tell() - here + len(this))
sre_constants.error: nothing to repeat at position 30
2025-03-27 12:54:06,777 Cleaning: /var/cache/obs/sZ8xxdiLsF35/out/tmppwm3kymw /var/cache/obs/sZ8xxdiLsF35/out/mkosi-1742138083.62d8b41
2025-03-27 12:54:06,798 Doing cleanup

https://build.opensuse.org/package/show/home:bluca:branches:system:systemd/mkos

This started appearing around Wednesday afternoon, 26th of March, on the public OBS instance, and used to work fine until then

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions