|  | @@ -25,6 +25,8 @@ class XAttrMetadataError(PostProcessingError):
 | 
	
		
			
				|  |  |          if (self.code in (errno.ENOSPC, errno.EDQUOT) or
 | 
	
		
			
				|  |  |                  'No space left' in self.msg or 'Disk quota excedded' in self.msg):
 | 
	
		
			
				|  |  |              self.reason = 'NO_SPACE'
 | 
	
		
			
				|  |  | +        elif self.code == errno.E2BIG or 'Argument list too long' in self.msg:
 | 
	
		
			
				|  |  | +            self.reason = 'VALUE_TOO_LONG'
 | 
	
		
			
				|  |  |          else:
 | 
	
		
			
				|  |  |              self.reason = 'NOT_SUPPORTED'
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -103,8 +105,11 @@ class XAttrMetadataPP(PostProcessor):
 | 
	
		
			
				|  |  |                                 [encodeArgument(o) for o in opts] +
 | 
	
		
			
				|  |  |                                 [encodeFilename(path, True)])
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                        p = subprocess.Popen(
 | 
	
		
			
				|  |  | -                            cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
 | 
	
		
			
				|  |  | +                        try:
 | 
	
		
			
				|  |  | +                            p = subprocess.Popen(
 | 
	
		
			
				|  |  | +                                cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
 | 
	
		
			
				|  |  | +                        except EnvironmentError as e:
 | 
	
		
			
				|  |  | +                            raise XAttrMetadataError(e.errno, e.strerror)
 | 
	
		
			
				|  |  |                          stdout, stderr = p.communicate()
 | 
	
		
			
				|  |  |                          stderr = stderr.decode('utf-8', 'replace')
 | 
	
		
			
				|  |  |                          if p.returncode != 0:
 | 
	
	
		
			
				|  | @@ -158,6 +163,9 @@ class XAttrMetadataPP(PostProcessor):
 | 
	
		
			
				|  |  |                  self._downloader.report_warning(
 | 
	
		
			
				|  |  |                      'There\'s no disk space left or disk quota exceeded. ' +
 | 
	
		
			
				|  |  |                      'Extended attributes are not written.')
 | 
	
		
			
				|  |  | +            elif e.reason == 'VALUE_TOO_LONG':
 | 
	
		
			
				|  |  | +                self._downloader.report_warning(
 | 
	
		
			
				|  |  | +                    'Unable to write extended attributes due to too long values.')
 | 
	
		
			
				|  |  |              else:
 | 
	
		
			
				|  |  |                  self._downloader.report_error(
 | 
	
		
			
				|  |  |                      'This filesystem doesn\'t support extended attributes. ' +
 |