On my D6 site, the only account with a picture in the users table is my own (there are also hundreds of blocked spam accounts with, fortunately, no pictures). Running the d6_user migration fills up migrate_message_d6_user with hundreds of complaints "File http://mikeryan.name/ could not be copied to public://.". Here's what happens, stepping through with the debugger:
The user_picture mapping in d6_user.yml:
user_picture:
plugin: migration
migration: d6_user_picture_file
source: uid
migrate_map_d6_user_picture_file contains one row, for my account's picture. Source key is my uid, since the file itself (unlike D7) comes from the users table rather than the files table (no fid in D6 for user pictures).
The migration process plugin looks up a uid (other than mine) in migrate_map_d6_user_picture_file and comes up empty. So, it tried to create a stub. Right there is where we go wrong - this is an instance where we want no stub, a lack of a picture for a user is not a chicken-and-egg situation but simply a normal case where we want nothing migrated into the field (you can guess what happens next, stub created with no filename thus the message above).
There's a related issue here, every destination should be able to create a minimally-viable stub (as we recently did for comments), but we'll deal with that later...
Comments
Comment #2
mikeryanThe simple solution would seem to be adding no_stub: true to the d6_user_picture_file destination configuration - but that doesn't work because #2555127: Process Migration Always Ignores no_stub Due to Pre-Existing Cached Entity Migrations, we need to fix that first.
Comment #3
dmoore commentedI can confirm when I tested the latest patch in https://www.drupal.org/node/2555127, this seems to have fixed the issue with d6_user picture migrations
Comment #4
quietone commentedComment #6
mikeryanIt may be that the commit referenced in https://www.drupal.org/node/2555127#comment-10675366 is enough for us to fix this, so I'll give it a try.
Comment #7
mikeryanCan no longer reproduce, looks like the menu links patch fixed it.